LCOV - code coverage report
Current view: top level - bin/default/source4/librpc/gen_ndr - ndr_irpc_c.c (source / functions) Hit Total Coverage
Test: coverage report for master 2f515e9b Lines: 168 895 18.8 %
Date: 2024-04-21 15:09:00 Functions: 21 84 25.0 %

          Line data    Source code
       1             : /* client functions auto-generated by pidl */
       2             : 
       3             : #include "includes.h"
       4             : #include <tevent.h>
       5             : #include "lib/util/tevent_ntstatus.h"
       6             : #include "bin/default/source4/librpc/gen_ndr/ndr_irpc.h"
       7             : #include "bin/default/source4/librpc/gen_ndr/ndr_irpc_c.h"
       8             : 
       9             : /* irpc - client functions generated by pidl */
      10             : 
      11             : struct dcerpc_irpc_uptime_r_state {
      12             :         TALLOC_CTX *out_mem_ctx;
      13             : };
      14             : 
      15             : static void dcerpc_irpc_uptime_r_done(struct tevent_req *subreq);
      16             : 
      17           0 : struct tevent_req *dcerpc_irpc_uptime_r_send(TALLOC_CTX *mem_ctx,
      18             :         struct tevent_context *ev,
      19             :         struct dcerpc_binding_handle *h,
      20             :         struct irpc_uptime *r)
      21             : {
      22           0 :         struct tevent_req *req;
      23           0 :         struct dcerpc_irpc_uptime_r_state *state;
      24           0 :         struct tevent_req *subreq;
      25             : 
      26           0 :         req = tevent_req_create(mem_ctx, &state,
      27             :                                 struct dcerpc_irpc_uptime_r_state);
      28           0 :         if (req == NULL) {
      29           0 :                 return NULL;
      30             :         }
      31             : 
      32           0 :         state->out_mem_ctx = talloc_new(state);
      33           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
      34           0 :                 return tevent_req_post(req, ev);
      35             :         }
      36             : 
      37           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
      38             :                         NULL, &ndr_table_irpc,
      39           0 :                         NDR_IRPC_UPTIME, state->out_mem_ctx, r);
      40           0 :         if (tevent_req_nomem(subreq, req)) {
      41           0 :                 return tevent_req_post(req, ev);
      42             :         }
      43           0 :         tevent_req_set_callback(subreq, dcerpc_irpc_uptime_r_done, req);
      44             : 
      45           0 :         return req;
      46             : }
      47             : 
      48           0 : static void dcerpc_irpc_uptime_r_done(struct tevent_req *subreq)
      49             : {
      50           0 :         struct tevent_req *req =
      51           0 :                 tevent_req_callback_data(subreq,
      52             :                 struct tevent_req);
      53           0 :         NTSTATUS status;
      54             : 
      55           0 :         status = dcerpc_binding_handle_call_recv(subreq);
      56           0 :         TALLOC_FREE(subreq);
      57           0 :         if (tevent_req_nterror(req, status)) {
      58           0 :                 return;
      59             :         }
      60             : 
      61           0 :         tevent_req_done(req);
      62             : }
      63             : 
      64           0 : NTSTATUS dcerpc_irpc_uptime_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
      65             : {
      66           0 :         struct dcerpc_irpc_uptime_r_state *state =
      67           0 :                 tevent_req_data(req,
      68             :                 struct dcerpc_irpc_uptime_r_state);
      69           0 :         NTSTATUS status;
      70             : 
      71           0 :         if (tevent_req_is_nterror(req, &status)) {
      72           0 :                 tevent_req_received(req);
      73           0 :                 return status;
      74             :         }
      75             : 
      76           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
      77             : 
      78           0 :         tevent_req_received(req);
      79           0 :         return NT_STATUS_OK;
      80             : }
      81             : 
      82           0 : NTSTATUS dcerpc_irpc_uptime_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct irpc_uptime *r)
      83             : {
      84           0 :         NTSTATUS status;
      85             : 
      86           0 :         status = dcerpc_binding_handle_call(h,
      87             :                         NULL, &ndr_table_irpc,
      88             :                         NDR_IRPC_UPTIME, mem_ctx, r);
      89             : 
      90           0 :         return status;
      91             : }
      92             : 
      93             : struct dcerpc_irpc_uptime_state {
      94             :         struct irpc_uptime orig;
      95             :         struct irpc_uptime tmp;
      96             :         TALLOC_CTX *out_mem_ctx;
      97             : };
      98             : 
      99             : static void dcerpc_irpc_uptime_done(struct tevent_req *subreq);
     100             : 
     101           0 : struct tevent_req *dcerpc_irpc_uptime_send(TALLOC_CTX *mem_ctx,
     102             :                                            struct tevent_context *ev,
     103             :                                            struct dcerpc_binding_handle *h,
     104             :                                            NTTIME *_start_time /* [out] [ref] */)
     105             : {
     106           0 :         struct tevent_req *req;
     107           0 :         struct dcerpc_irpc_uptime_state *state;
     108           0 :         struct tevent_req *subreq;
     109             : 
     110           0 :         req = tevent_req_create(mem_ctx, &state,
     111             :                                 struct dcerpc_irpc_uptime_state);
     112           0 :         if (req == NULL) {
     113           0 :                 return NULL;
     114             :         }
     115           0 :         state->out_mem_ctx = NULL;
     116             : 
     117             :         /* In parameters */
     118             : 
     119             :         /* Out parameters */
     120           0 :         state->orig.out.start_time = _start_time;
     121             : 
     122           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
     123             :                              "dcerpc_irpc_uptime_out_memory");
     124           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     125           0 :                 return tevent_req_post(req, ev);
     126             :         }
     127             : 
     128             :         /* make a temporary copy, that we pass to the dispatch function */
     129           0 :         state->tmp = state->orig;
     130             : 
     131           0 :         subreq = dcerpc_irpc_uptime_r_send(state, ev, h, &state->tmp);
     132           0 :         if (tevent_req_nomem(subreq, req)) {
     133           0 :                 return tevent_req_post(req, ev);
     134             :         }
     135           0 :         tevent_req_set_callback(subreq, dcerpc_irpc_uptime_done, req);
     136           0 :         return req;
     137             : }
     138             : 
     139           0 : static void dcerpc_irpc_uptime_done(struct tevent_req *subreq)
     140             : {
     141           0 :         struct tevent_req *req = tevent_req_callback_data(
     142             :                 subreq, struct tevent_req);
     143           0 :         struct dcerpc_irpc_uptime_state *state = tevent_req_data(
     144             :                 req, struct dcerpc_irpc_uptime_state);
     145           0 :         NTSTATUS status;
     146           0 :         TALLOC_CTX *mem_ctx;
     147             : 
     148           0 :         if (state->out_mem_ctx) {
     149           0 :                 mem_ctx = state->out_mem_ctx;
     150             :         } else {
     151           0 :                 mem_ctx = state;
     152             :         }
     153             : 
     154           0 :         status = dcerpc_irpc_uptime_r_recv(subreq, mem_ctx);
     155           0 :         TALLOC_FREE(subreq);
     156           0 :         if (tevent_req_nterror(req, status)) {
     157           0 :                 return;
     158             :         }
     159             : 
     160             :         /* Copy out parameters */
     161           0 :         *state->orig.out.start_time = *state->tmp.out.start_time;
     162             : 
     163             :         /* Reset temporary structure */
     164           0 :         NDR_ZERO_STRUCT(state->tmp);
     165             : 
     166           0 :         tevent_req_done(req);
     167             : }
     168             : 
     169           0 : NTSTATUS dcerpc_irpc_uptime_recv(struct tevent_req *req,
     170             :                                  TALLOC_CTX *mem_ctx)
     171             : {
     172           0 :         struct dcerpc_irpc_uptime_state *state = tevent_req_data(
     173             :                 req, struct dcerpc_irpc_uptime_state);
     174           0 :         NTSTATUS status;
     175             : 
     176           0 :         if (tevent_req_is_nterror(req, &status)) {
     177           0 :                 tevent_req_received(req);
     178           0 :                 return status;
     179             :         }
     180             : 
     181             :         /* Steal possible out parameters to the callers context */
     182           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     183             : 
     184           0 :         tevent_req_received(req);
     185           0 :         return NT_STATUS_OK;
     186             : }
     187             : 
     188           0 : NTSTATUS dcerpc_irpc_uptime(struct dcerpc_binding_handle *h,
     189             :                             TALLOC_CTX *mem_ctx,
     190             :                             NTTIME *_start_time /* [out] [ref] */)
     191             : {
     192           0 :         struct irpc_uptime r;
     193           0 :         NTSTATUS status;
     194             : 
     195             :         /* In parameters */
     196             : 
     197             :         /* Out parameters */
     198           0 :         r.out.start_time = _start_time;
     199             : 
     200           0 :         status = dcerpc_irpc_uptime_r(h, mem_ctx, &r);
     201           0 :         if (!NT_STATUS_IS_OK(status)) {
     202           0 :                 return status;
     203             :         }
     204             : 
     205             :         /* Return variables */
     206           0 :         *_start_time = *r.out.start_time;
     207             : 
     208             :         /* Return result */
     209             : 
     210           0 :         return NT_STATUS_OK;
     211             : }
     212             : 
     213             : struct dcerpc_nbtd_information_r_state {
     214             :         TALLOC_CTX *out_mem_ctx;
     215             : };
     216             : 
     217             : static void dcerpc_nbtd_information_r_done(struct tevent_req *subreq);
     218             : 
     219           0 : struct tevent_req *dcerpc_nbtd_information_r_send(TALLOC_CTX *mem_ctx,
     220             :         struct tevent_context *ev,
     221             :         struct dcerpc_binding_handle *h,
     222             :         struct nbtd_information *r)
     223             : {
     224           0 :         struct tevent_req *req;
     225           0 :         struct dcerpc_nbtd_information_r_state *state;
     226           0 :         struct tevent_req *subreq;
     227             : 
     228           0 :         req = tevent_req_create(mem_ctx, &state,
     229             :                                 struct dcerpc_nbtd_information_r_state);
     230           0 :         if (req == NULL) {
     231           0 :                 return NULL;
     232             :         }
     233             : 
     234           0 :         state->out_mem_ctx = talloc_new(state);
     235           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     236           0 :                 return tevent_req_post(req, ev);
     237             :         }
     238             : 
     239           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     240             :                         NULL, &ndr_table_irpc,
     241           0 :                         NDR_NBTD_INFORMATION, state->out_mem_ctx, r);
     242           0 :         if (tevent_req_nomem(subreq, req)) {
     243           0 :                 return tevent_req_post(req, ev);
     244             :         }
     245           0 :         tevent_req_set_callback(subreq, dcerpc_nbtd_information_r_done, req);
     246             : 
     247           0 :         return req;
     248             : }
     249             : 
     250           0 : static void dcerpc_nbtd_information_r_done(struct tevent_req *subreq)
     251             : {
     252           0 :         struct tevent_req *req =
     253           0 :                 tevent_req_callback_data(subreq,
     254             :                 struct tevent_req);
     255           0 :         NTSTATUS status;
     256             : 
     257           0 :         status = dcerpc_binding_handle_call_recv(subreq);
     258           0 :         TALLOC_FREE(subreq);
     259           0 :         if (tevent_req_nterror(req, status)) {
     260           0 :                 return;
     261             :         }
     262             : 
     263           0 :         tevent_req_done(req);
     264             : }
     265             : 
     266           0 : NTSTATUS dcerpc_nbtd_information_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     267             : {
     268           0 :         struct dcerpc_nbtd_information_r_state *state =
     269           0 :                 tevent_req_data(req,
     270             :                 struct dcerpc_nbtd_information_r_state);
     271           0 :         NTSTATUS status;
     272             : 
     273           0 :         if (tevent_req_is_nterror(req, &status)) {
     274           0 :                 tevent_req_received(req);
     275           0 :                 return status;
     276             :         }
     277             : 
     278           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     279             : 
     280           0 :         tevent_req_received(req);
     281           0 :         return NT_STATUS_OK;
     282             : }
     283             : 
     284           0 : NTSTATUS dcerpc_nbtd_information_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct nbtd_information *r)
     285             : {
     286           0 :         NTSTATUS status;
     287             : 
     288           0 :         status = dcerpc_binding_handle_call(h,
     289             :                         NULL, &ndr_table_irpc,
     290             :                         NDR_NBTD_INFORMATION, mem_ctx, r);
     291             : 
     292           0 :         return status;
     293             : }
     294             : 
     295             : /*
     296             :  * The following functions are skipped because
     297             :  * an [out] argument info is not a pointer or array:
     298             :  *
     299             :  * dcerpc_nbtd_information_send()
     300             :  * dcerpc_nbtd_information_recv()
     301             :  * dcerpc_nbtd_information()
     302             :  */
     303             : 
     304             : struct dcerpc_nbtd_getdcname_r_state {
     305             :         TALLOC_CTX *out_mem_ctx;
     306             : };
     307             : 
     308             : static void dcerpc_nbtd_getdcname_r_done(struct tevent_req *subreq);
     309             : 
     310           0 : struct tevent_req *dcerpc_nbtd_getdcname_r_send(TALLOC_CTX *mem_ctx,
     311             :         struct tevent_context *ev,
     312             :         struct dcerpc_binding_handle *h,
     313             :         struct nbtd_getdcname *r)
     314             : {
     315           0 :         struct tevent_req *req;
     316           0 :         struct dcerpc_nbtd_getdcname_r_state *state;
     317           0 :         struct tevent_req *subreq;
     318             : 
     319           0 :         req = tevent_req_create(mem_ctx, &state,
     320             :                                 struct dcerpc_nbtd_getdcname_r_state);
     321           0 :         if (req == NULL) {
     322           0 :                 return NULL;
     323             :         }
     324             : 
     325           0 :         state->out_mem_ctx = talloc_new(state);
     326           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     327           0 :                 return tevent_req_post(req, ev);
     328             :         }
     329             : 
     330           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     331             :                         NULL, &ndr_table_irpc,
     332           0 :                         NDR_NBTD_GETDCNAME, state->out_mem_ctx, r);
     333           0 :         if (tevent_req_nomem(subreq, req)) {
     334           0 :                 return tevent_req_post(req, ev);
     335             :         }
     336           0 :         tevent_req_set_callback(subreq, dcerpc_nbtd_getdcname_r_done, req);
     337             : 
     338           0 :         return req;
     339             : }
     340             : 
     341           0 : static void dcerpc_nbtd_getdcname_r_done(struct tevent_req *subreq)
     342             : {
     343           0 :         struct tevent_req *req =
     344           0 :                 tevent_req_callback_data(subreq,
     345             :                 struct tevent_req);
     346           0 :         NTSTATUS status;
     347             : 
     348           0 :         status = dcerpc_binding_handle_call_recv(subreq);
     349           0 :         TALLOC_FREE(subreq);
     350           0 :         if (tevent_req_nterror(req, status)) {
     351           0 :                 return;
     352             :         }
     353             : 
     354           0 :         tevent_req_done(req);
     355             : }
     356             : 
     357           0 : NTSTATUS dcerpc_nbtd_getdcname_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     358             : {
     359           0 :         struct dcerpc_nbtd_getdcname_r_state *state =
     360           0 :                 tevent_req_data(req,
     361             :                 struct dcerpc_nbtd_getdcname_r_state);
     362           0 :         NTSTATUS status;
     363             : 
     364           0 :         if (tevent_req_is_nterror(req, &status)) {
     365           0 :                 tevent_req_received(req);
     366           0 :                 return status;
     367             :         }
     368             : 
     369           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     370             : 
     371           0 :         tevent_req_received(req);
     372           0 :         return NT_STATUS_OK;
     373             : }
     374             : 
     375           0 : NTSTATUS dcerpc_nbtd_getdcname_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct nbtd_getdcname *r)
     376             : {
     377           0 :         NTSTATUS status;
     378             : 
     379           0 :         status = dcerpc_binding_handle_call(h,
     380             :                         NULL, &ndr_table_irpc,
     381             :                         NDR_NBTD_GETDCNAME, mem_ctx, r);
     382             : 
     383           0 :         return status;
     384             : }
     385             : 
     386             : /*
     387             :  * The following functions are skipped because
     388             :  * an [out] argument dcname is a pointer to a string type:
     389             :  *
     390             :  * dcerpc_nbtd_getdcname_send()
     391             :  * dcerpc_nbtd_getdcname_recv()
     392             :  * dcerpc_nbtd_getdcname()
     393             :  */
     394             : 
     395             : struct dcerpc_nbtd_proxy_wins_challenge_r_state {
     396             :         TALLOC_CTX *out_mem_ctx;
     397             : };
     398             : 
     399             : static void dcerpc_nbtd_proxy_wins_challenge_r_done(struct tevent_req *subreq);
     400             : 
     401          21 : struct tevent_req *dcerpc_nbtd_proxy_wins_challenge_r_send(TALLOC_CTX *mem_ctx,
     402             :         struct tevent_context *ev,
     403             :         struct dcerpc_binding_handle *h,
     404             :         struct nbtd_proxy_wins_challenge *r)
     405             : {
     406           0 :         struct tevent_req *req;
     407           0 :         struct dcerpc_nbtd_proxy_wins_challenge_r_state *state;
     408           0 :         struct tevent_req *subreq;
     409             : 
     410          21 :         req = tevent_req_create(mem_ctx, &state,
     411             :                                 struct dcerpc_nbtd_proxy_wins_challenge_r_state);
     412          21 :         if (req == NULL) {
     413           0 :                 return NULL;
     414             :         }
     415             : 
     416          21 :         state->out_mem_ctx = talloc_new(state);
     417          21 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     418           0 :                 return tevent_req_post(req, ev);
     419             :         }
     420             : 
     421          21 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     422             :                         NULL, &ndr_table_irpc,
     423          21 :                         NDR_NBTD_PROXY_WINS_CHALLENGE, state->out_mem_ctx, r);
     424          21 :         if (tevent_req_nomem(subreq, req)) {
     425           0 :                 return tevent_req_post(req, ev);
     426             :         }
     427          21 :         tevent_req_set_callback(subreq, dcerpc_nbtd_proxy_wins_challenge_r_done, req);
     428             : 
     429          21 :         return req;
     430             : }
     431             : 
     432          21 : static void dcerpc_nbtd_proxy_wins_challenge_r_done(struct tevent_req *subreq)
     433             : {
     434           0 :         struct tevent_req *req =
     435          21 :                 tevent_req_callback_data(subreq,
     436             :                 struct tevent_req);
     437           0 :         NTSTATUS status;
     438             : 
     439          21 :         status = dcerpc_binding_handle_call_recv(subreq);
     440          21 :         TALLOC_FREE(subreq);
     441          21 :         if (tevent_req_nterror(req, status)) {
     442           5 :                 return;
     443             :         }
     444             : 
     445          16 :         tevent_req_done(req);
     446             : }
     447             : 
     448          21 : NTSTATUS dcerpc_nbtd_proxy_wins_challenge_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     449             : {
     450           0 :         struct dcerpc_nbtd_proxy_wins_challenge_r_state *state =
     451          21 :                 tevent_req_data(req,
     452             :                 struct dcerpc_nbtd_proxy_wins_challenge_r_state);
     453           0 :         NTSTATUS status;
     454             : 
     455          21 :         if (tevent_req_is_nterror(req, &status)) {
     456           5 :                 tevent_req_received(req);
     457           5 :                 return status;
     458             :         }
     459             : 
     460          16 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     461             : 
     462          16 :         tevent_req_received(req);
     463          16 :         return NT_STATUS_OK;
     464             : }
     465             : 
     466           0 : NTSTATUS dcerpc_nbtd_proxy_wins_challenge_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct nbtd_proxy_wins_challenge *r)
     467             : {
     468           0 :         NTSTATUS status;
     469             : 
     470           0 :         status = dcerpc_binding_handle_call(h,
     471             :                         NULL, &ndr_table_irpc,
     472             :                         NDR_NBTD_PROXY_WINS_CHALLENGE, mem_ctx, r);
     473             : 
     474           0 :         return status;
     475             : }
     476             : 
     477             : /*
     478             :  * The following functions are skipped because
     479             :  * an [out] argument num_addrs is not a pointer or array:
     480             :  *
     481             :  * dcerpc_nbtd_proxy_wins_challenge_send()
     482             :  * dcerpc_nbtd_proxy_wins_challenge_recv()
     483             :  * dcerpc_nbtd_proxy_wins_challenge()
     484             :  */
     485             : 
     486             : struct dcerpc_nbtd_proxy_wins_release_demand_r_state {
     487             :         TALLOC_CTX *out_mem_ctx;
     488             : };
     489             : 
     490             : static void dcerpc_nbtd_proxy_wins_release_demand_r_done(struct tevent_req *subreq);
     491             : 
     492          10 : struct tevent_req *dcerpc_nbtd_proxy_wins_release_demand_r_send(TALLOC_CTX *mem_ctx,
     493             :         struct tevent_context *ev,
     494             :         struct dcerpc_binding_handle *h,
     495             :         struct nbtd_proxy_wins_release_demand *r)
     496             : {
     497           0 :         struct tevent_req *req;
     498           0 :         struct dcerpc_nbtd_proxy_wins_release_demand_r_state *state;
     499           0 :         struct tevent_req *subreq;
     500             : 
     501          10 :         req = tevent_req_create(mem_ctx, &state,
     502             :                                 struct dcerpc_nbtd_proxy_wins_release_demand_r_state);
     503          10 :         if (req == NULL) {
     504           0 :                 return NULL;
     505             :         }
     506             : 
     507          10 :         state->out_mem_ctx = NULL;
     508             : 
     509          10 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     510             :                         NULL, &ndr_table_irpc,
     511             :                         NDR_NBTD_PROXY_WINS_RELEASE_DEMAND, state, r);
     512          10 :         if (tevent_req_nomem(subreq, req)) {
     513           0 :                 return tevent_req_post(req, ev);
     514             :         }
     515          10 :         tevent_req_set_callback(subreq, dcerpc_nbtd_proxy_wins_release_demand_r_done, req);
     516             : 
     517          10 :         return req;
     518             : }
     519             : 
     520          10 : static void dcerpc_nbtd_proxy_wins_release_demand_r_done(struct tevent_req *subreq)
     521             : {
     522           0 :         struct tevent_req *req =
     523          10 :                 tevent_req_callback_data(subreq,
     524             :                 struct tevent_req);
     525           0 :         NTSTATUS status;
     526             : 
     527          10 :         status = dcerpc_binding_handle_call_recv(subreq);
     528          10 :         TALLOC_FREE(subreq);
     529          10 :         if (tevent_req_nterror(req, status)) {
     530           1 :                 return;
     531             :         }
     532             : 
     533           9 :         tevent_req_done(req);
     534             : }
     535             : 
     536          10 : NTSTATUS dcerpc_nbtd_proxy_wins_release_demand_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     537             : {
     538           0 :         struct dcerpc_nbtd_proxy_wins_release_demand_r_state *state =
     539          10 :                 tevent_req_data(req,
     540             :                 struct dcerpc_nbtd_proxy_wins_release_demand_r_state);
     541           0 :         NTSTATUS status;
     542             : 
     543          10 :         if (tevent_req_is_nterror(req, &status)) {
     544           1 :                 tevent_req_received(req);
     545           1 :                 return status;
     546             :         }
     547             : 
     548           9 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     549             : 
     550           9 :         tevent_req_received(req);
     551           9 :         return NT_STATUS_OK;
     552             : }
     553             : 
     554           0 : NTSTATUS dcerpc_nbtd_proxy_wins_release_demand_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct nbtd_proxy_wins_release_demand *r)
     555             : {
     556           0 :         NTSTATUS status;
     557             : 
     558           0 :         status = dcerpc_binding_handle_call(h,
     559             :                         NULL, &ndr_table_irpc,
     560             :                         NDR_NBTD_PROXY_WINS_RELEASE_DEMAND, mem_ctx, r);
     561             : 
     562           0 :         return status;
     563             : }
     564             : 
     565             : struct dcerpc_nbtd_proxy_wins_release_demand_state {
     566             :         struct nbtd_proxy_wins_release_demand orig;
     567             :         struct nbtd_proxy_wins_release_demand tmp;
     568             :         TALLOC_CTX *out_mem_ctx;
     569             : };
     570             : 
     571             : static void dcerpc_nbtd_proxy_wins_release_demand_done(struct tevent_req *subreq);
     572             : 
     573           0 : struct tevent_req *dcerpc_nbtd_proxy_wins_release_demand_send(TALLOC_CTX *mem_ctx,
     574             :                                                               struct tevent_context *ev,
     575             :                                                               struct dcerpc_binding_handle *h,
     576             :                                                               struct nbt_name _name /* [in]  */,
     577             :                                                               uint32_t _num_addrs /* [in]  */,
     578             :                                                               struct nbtd_proxy_wins_addr *_addrs /* [in]  */)
     579             : {
     580           0 :         struct tevent_req *req;
     581           0 :         struct dcerpc_nbtd_proxy_wins_release_demand_state *state;
     582           0 :         struct tevent_req *subreq;
     583             : 
     584           0 :         req = tevent_req_create(mem_ctx, &state,
     585             :                                 struct dcerpc_nbtd_proxy_wins_release_demand_state);
     586           0 :         if (req == NULL) {
     587           0 :                 return NULL;
     588             :         }
     589           0 :         state->out_mem_ctx = NULL;
     590             : 
     591             :         /* In parameters */
     592           0 :         state->orig.in.name = _name;
     593           0 :         state->orig.in.num_addrs = _num_addrs;
     594           0 :         state->orig.in.addrs = _addrs;
     595             : 
     596             :         /* Out parameters */
     597             : 
     598             :         /* make a temporary copy, that we pass to the dispatch function */
     599           0 :         state->tmp = state->orig;
     600             : 
     601           0 :         subreq = dcerpc_nbtd_proxy_wins_release_demand_r_send(state, ev, h, &state->tmp);
     602           0 :         if (tevent_req_nomem(subreq, req)) {
     603           0 :                 return tevent_req_post(req, ev);
     604             :         }
     605           0 :         tevent_req_set_callback(subreq, dcerpc_nbtd_proxy_wins_release_demand_done, req);
     606           0 :         return req;
     607             : }
     608             : 
     609           0 : static void dcerpc_nbtd_proxy_wins_release_demand_done(struct tevent_req *subreq)
     610             : {
     611           0 :         struct tevent_req *req = tevent_req_callback_data(
     612             :                 subreq, struct tevent_req);
     613           0 :         struct dcerpc_nbtd_proxy_wins_release_demand_state *state = tevent_req_data(
     614             :                 req, struct dcerpc_nbtd_proxy_wins_release_demand_state);
     615           0 :         NTSTATUS status;
     616           0 :         TALLOC_CTX *mem_ctx;
     617             : 
     618           0 :         if (state->out_mem_ctx) {
     619           0 :                 mem_ctx = state->out_mem_ctx;
     620             :         } else {
     621           0 :                 mem_ctx = state;
     622             :         }
     623             : 
     624           0 :         status = dcerpc_nbtd_proxy_wins_release_demand_r_recv(subreq, mem_ctx);
     625           0 :         TALLOC_FREE(subreq);
     626           0 :         if (tevent_req_nterror(req, status)) {
     627           0 :                 return;
     628             :         }
     629             : 
     630             :         /* Copy out parameters */
     631             : 
     632             :         /* Reset temporary structure */
     633           0 :         NDR_ZERO_STRUCT(state->tmp);
     634             : 
     635           0 :         tevent_req_done(req);
     636             : }
     637             : 
     638           0 : NTSTATUS dcerpc_nbtd_proxy_wins_release_demand_recv(struct tevent_req *req,
     639             :                                                     TALLOC_CTX *mem_ctx)
     640             : {
     641           0 :         struct dcerpc_nbtd_proxy_wins_release_demand_state *state = tevent_req_data(
     642             :                 req, struct dcerpc_nbtd_proxy_wins_release_demand_state);
     643           0 :         NTSTATUS status;
     644             : 
     645           0 :         if (tevent_req_is_nterror(req, &status)) {
     646           0 :                 tevent_req_received(req);
     647           0 :                 return status;
     648             :         }
     649             : 
     650             :         /* Steal possible out parameters to the callers context */
     651           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     652             : 
     653           0 :         tevent_req_received(req);
     654           0 :         return NT_STATUS_OK;
     655             : }
     656             : 
     657           0 : NTSTATUS dcerpc_nbtd_proxy_wins_release_demand(struct dcerpc_binding_handle *h,
     658             :                                                TALLOC_CTX *mem_ctx,
     659             :                                                struct nbt_name _name /* [in]  */,
     660             :                                                uint32_t _num_addrs /* [in]  */,
     661             :                                                struct nbtd_proxy_wins_addr *_addrs /* [in]  */)
     662             : {
     663           0 :         struct nbtd_proxy_wins_release_demand r;
     664           0 :         NTSTATUS status;
     665             : 
     666             :         /* In parameters */
     667           0 :         r.in.name = _name;
     668           0 :         r.in.num_addrs = _num_addrs;
     669           0 :         r.in.addrs = _addrs;
     670             : 
     671             :         /* Out parameters */
     672             : 
     673           0 :         status = dcerpc_nbtd_proxy_wins_release_demand_r(h, mem_ctx, &r);
     674           0 :         if (!NT_STATUS_IS_OK(status)) {
     675           0 :                 return status;
     676             :         }
     677             : 
     678             :         /* Return variables */
     679             : 
     680             :         /* Return result */
     681             : 
     682           0 :         return NT_STATUS_OK;
     683             : }
     684             : 
     685             : struct dcerpc_kdc_check_generic_kerberos_r_state {
     686             :         TALLOC_CTX *out_mem_ctx;
     687             : };
     688             : 
     689             : static void dcerpc_kdc_check_generic_kerberos_r_done(struct tevent_req *subreq);
     690             : 
     691         250 : struct tevent_req *dcerpc_kdc_check_generic_kerberos_r_send(TALLOC_CTX *mem_ctx,
     692             :         struct tevent_context *ev,
     693             :         struct dcerpc_binding_handle *h,
     694             :         struct kdc_check_generic_kerberos *r)
     695             : {
     696           0 :         struct tevent_req *req;
     697           0 :         struct dcerpc_kdc_check_generic_kerberos_r_state *state;
     698           0 :         struct tevent_req *subreq;
     699             : 
     700         250 :         req = tevent_req_create(mem_ctx, &state,
     701             :                                 struct dcerpc_kdc_check_generic_kerberos_r_state);
     702         250 :         if (req == NULL) {
     703           0 :                 return NULL;
     704             :         }
     705             : 
     706         250 :         state->out_mem_ctx = talloc_new(state);
     707         250 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     708           0 :                 return tevent_req_post(req, ev);
     709             :         }
     710             : 
     711         250 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     712             :                         NULL, &ndr_table_irpc,
     713         250 :                         NDR_KDC_CHECK_GENERIC_KERBEROS, state->out_mem_ctx, r);
     714         250 :         if (tevent_req_nomem(subreq, req)) {
     715           0 :                 return tevent_req_post(req, ev);
     716             :         }
     717         250 :         tevent_req_set_callback(subreq, dcerpc_kdc_check_generic_kerberos_r_done, req);
     718             : 
     719         250 :         return req;
     720             : }
     721             : 
     722         250 : static void dcerpc_kdc_check_generic_kerberos_r_done(struct tevent_req *subreq)
     723             : {
     724           0 :         struct tevent_req *req =
     725         250 :                 tevent_req_callback_data(subreq,
     726             :                 struct tevent_req);
     727           0 :         NTSTATUS status;
     728             : 
     729         250 :         status = dcerpc_binding_handle_call_recv(subreq);
     730         250 :         TALLOC_FREE(subreq);
     731         250 :         if (tevent_req_nterror(req, status)) {
     732         200 :                 return;
     733             :         }
     734             : 
     735          50 :         tevent_req_done(req);
     736             : }
     737             : 
     738         250 : NTSTATUS dcerpc_kdc_check_generic_kerberos_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     739             : {
     740           0 :         struct dcerpc_kdc_check_generic_kerberos_r_state *state =
     741         250 :                 tevent_req_data(req,
     742             :                 struct dcerpc_kdc_check_generic_kerberos_r_state);
     743           0 :         NTSTATUS status;
     744             : 
     745         250 :         if (tevent_req_is_nterror(req, &status)) {
     746         200 :                 tevent_req_received(req);
     747         200 :                 return status;
     748             :         }
     749             : 
     750          50 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     751             : 
     752          50 :         tevent_req_received(req);
     753          50 :         return NT_STATUS_OK;
     754             : }
     755             : 
     756           0 : NTSTATUS dcerpc_kdc_check_generic_kerberos_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct kdc_check_generic_kerberos *r)
     757             : {
     758           0 :         NTSTATUS status;
     759             : 
     760           0 :         status = dcerpc_binding_handle_call(h,
     761             :                         NULL, &ndr_table_irpc,
     762             :                         NDR_KDC_CHECK_GENERIC_KERBEROS, mem_ctx, r);
     763             : 
     764           0 :         return status;
     765             : }
     766             : 
     767             : /*
     768             :  * The following functions are skipped because
     769             :  * an [out] argument generic_reply is not a pointer or array:
     770             :  *
     771             :  * dcerpc_kdc_check_generic_kerberos_send()
     772             :  * dcerpc_kdc_check_generic_kerberos_recv()
     773             :  * dcerpc_kdc_check_generic_kerberos()
     774             :  */
     775             : 
     776             : struct dcerpc_smbsrv_information_r_state {
     777             :         TALLOC_CTX *out_mem_ctx;
     778             : };
     779             : 
     780             : static void dcerpc_smbsrv_information_r_done(struct tevent_req *subreq);
     781             : 
     782           0 : struct tevent_req *dcerpc_smbsrv_information_r_send(TALLOC_CTX *mem_ctx,
     783             :         struct tevent_context *ev,
     784             :         struct dcerpc_binding_handle *h,
     785             :         struct smbsrv_information *r)
     786             : {
     787           0 :         struct tevent_req *req;
     788           0 :         struct dcerpc_smbsrv_information_r_state *state;
     789           0 :         struct tevent_req *subreq;
     790             : 
     791           0 :         req = tevent_req_create(mem_ctx, &state,
     792             :                                 struct dcerpc_smbsrv_information_r_state);
     793           0 :         if (req == NULL) {
     794           0 :                 return NULL;
     795             :         }
     796             : 
     797           0 :         state->out_mem_ctx = talloc_new(state);
     798           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
     799           0 :                 return tevent_req_post(req, ev);
     800             :         }
     801             : 
     802           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     803             :                         NULL, &ndr_table_irpc,
     804           0 :                         NDR_SMBSRV_INFORMATION, state->out_mem_ctx, r);
     805           0 :         if (tevent_req_nomem(subreq, req)) {
     806           0 :                 return tevent_req_post(req, ev);
     807             :         }
     808           0 :         tevent_req_set_callback(subreq, dcerpc_smbsrv_information_r_done, req);
     809             : 
     810           0 :         return req;
     811             : }
     812             : 
     813           0 : static void dcerpc_smbsrv_information_r_done(struct tevent_req *subreq)
     814             : {
     815           0 :         struct tevent_req *req =
     816           0 :                 tevent_req_callback_data(subreq,
     817             :                 struct tevent_req);
     818           0 :         NTSTATUS status;
     819             : 
     820           0 :         status = dcerpc_binding_handle_call_recv(subreq);
     821           0 :         TALLOC_FREE(subreq);
     822           0 :         if (tevent_req_nterror(req, status)) {
     823           0 :                 return;
     824             :         }
     825             : 
     826           0 :         tevent_req_done(req);
     827             : }
     828             : 
     829           0 : NTSTATUS dcerpc_smbsrv_information_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     830             : {
     831           0 :         struct dcerpc_smbsrv_information_r_state *state =
     832           0 :                 tevent_req_data(req,
     833             :                 struct dcerpc_smbsrv_information_r_state);
     834           0 :         NTSTATUS status;
     835             : 
     836           0 :         if (tevent_req_is_nterror(req, &status)) {
     837           0 :                 tevent_req_received(req);
     838           0 :                 return status;
     839             :         }
     840             : 
     841           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     842             : 
     843           0 :         tevent_req_received(req);
     844           0 :         return NT_STATUS_OK;
     845             : }
     846             : 
     847           0 : NTSTATUS dcerpc_smbsrv_information_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct smbsrv_information *r)
     848             : {
     849           0 :         NTSTATUS status;
     850             : 
     851           0 :         status = dcerpc_binding_handle_call(h,
     852             :                         NULL, &ndr_table_irpc,
     853             :                         NDR_SMBSRV_INFORMATION, mem_ctx, r);
     854             : 
     855           0 :         return status;
     856             : }
     857             : 
     858             : /*
     859             :  * The following functions are skipped because
     860             :  * an [out] argument info is not a pointer or array:
     861             :  *
     862             :  * dcerpc_smbsrv_information_send()
     863             :  * dcerpc_smbsrv_information_recv()
     864             :  * dcerpc_smbsrv_information()
     865             :  */
     866             : 
     867             : struct dcerpc_samba_terminate_r_state {
     868             :         TALLOC_CTX *out_mem_ctx;
     869             : };
     870             : 
     871             : static void dcerpc_samba_terminate_r_done(struct tevent_req *subreq);
     872             : 
     873           0 : struct tevent_req *dcerpc_samba_terminate_r_send(TALLOC_CTX *mem_ctx,
     874             :         struct tevent_context *ev,
     875             :         struct dcerpc_binding_handle *h,
     876             :         struct samba_terminate *r)
     877             : {
     878           0 :         struct tevent_req *req;
     879           0 :         struct dcerpc_samba_terminate_r_state *state;
     880           0 :         struct tevent_req *subreq;
     881             : 
     882           0 :         req = tevent_req_create(mem_ctx, &state,
     883             :                                 struct dcerpc_samba_terminate_r_state);
     884           0 :         if (req == NULL) {
     885           0 :                 return NULL;
     886             :         }
     887             : 
     888           0 :         state->out_mem_ctx = NULL;
     889             : 
     890           0 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
     891             :                         NULL, &ndr_table_irpc,
     892             :                         NDR_SAMBA_TERMINATE, state, r);
     893           0 :         if (tevent_req_nomem(subreq, req)) {
     894           0 :                 return tevent_req_post(req, ev);
     895             :         }
     896           0 :         tevent_req_set_callback(subreq, dcerpc_samba_terminate_r_done, req);
     897             : 
     898           0 :         return req;
     899             : }
     900             : 
     901           0 : static void dcerpc_samba_terminate_r_done(struct tevent_req *subreq)
     902             : {
     903           0 :         struct tevent_req *req =
     904           0 :                 tevent_req_callback_data(subreq,
     905             :                 struct tevent_req);
     906           0 :         NTSTATUS status;
     907             : 
     908           0 :         status = dcerpc_binding_handle_call_recv(subreq);
     909           0 :         TALLOC_FREE(subreq);
     910           0 :         if (tevent_req_nterror(req, status)) {
     911           0 :                 return;
     912             :         }
     913             : 
     914           0 :         tevent_req_done(req);
     915             : }
     916             : 
     917           0 : NTSTATUS dcerpc_samba_terminate_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
     918             : {
     919           0 :         struct dcerpc_samba_terminate_r_state *state =
     920           0 :                 tevent_req_data(req,
     921             :                 struct dcerpc_samba_terminate_r_state);
     922           0 :         NTSTATUS status;
     923             : 
     924           0 :         if (tevent_req_is_nterror(req, &status)) {
     925           0 :                 tevent_req_received(req);
     926           0 :                 return status;
     927             :         }
     928             : 
     929           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
     930             : 
     931           0 :         tevent_req_received(req);
     932           0 :         return NT_STATUS_OK;
     933             : }
     934             : 
     935           0 : NTSTATUS dcerpc_samba_terminate_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct samba_terminate *r)
     936             : {
     937           0 :         NTSTATUS status;
     938             : 
     939           0 :         status = dcerpc_binding_handle_call(h,
     940             :                         NULL, &ndr_table_irpc,
     941             :                         NDR_SAMBA_TERMINATE, mem_ctx, r);
     942             : 
     943           0 :         return status;
     944             : }
     945             : 
     946             : struct dcerpc_samba_terminate_state {
     947             :         struct samba_terminate orig;
     948             :         struct samba_terminate tmp;
     949             :         TALLOC_CTX *out_mem_ctx;
     950             : };
     951             : 
     952             : static void dcerpc_samba_terminate_done(struct tevent_req *subreq);
     953             : 
     954           0 : struct tevent_req *dcerpc_samba_terminate_send(TALLOC_CTX *mem_ctx,
     955             :                                                struct tevent_context *ev,
     956             :                                                struct dcerpc_binding_handle *h,
     957             :                                                const char * _reason /* [in] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */)
     958             : {
     959           0 :         struct tevent_req *req;
     960           0 :         struct dcerpc_samba_terminate_state *state;
     961           0 :         struct tevent_req *subreq;
     962             : 
     963           0 :         req = tevent_req_create(mem_ctx, &state,
     964             :                                 struct dcerpc_samba_terminate_state);
     965           0 :         if (req == NULL) {
     966           0 :                 return NULL;
     967             :         }
     968           0 :         state->out_mem_ctx = NULL;
     969             : 
     970             :         /* In parameters */
     971           0 :         state->orig.in.reason = _reason;
     972             : 
     973             :         /* Out parameters */
     974             : 
     975             :         /* make a temporary copy, that we pass to the dispatch function */
     976           0 :         state->tmp = state->orig;
     977             : 
     978           0 :         subreq = dcerpc_samba_terminate_r_send(state, ev, h, &state->tmp);
     979           0 :         if (tevent_req_nomem(subreq, req)) {
     980           0 :                 return tevent_req_post(req, ev);
     981             :         }
     982           0 :         tevent_req_set_callback(subreq, dcerpc_samba_terminate_done, req);
     983           0 :         return req;
     984             : }
     985             : 
     986           0 : static void dcerpc_samba_terminate_done(struct tevent_req *subreq)
     987             : {
     988           0 :         struct tevent_req *req = tevent_req_callback_data(
     989             :                 subreq, struct tevent_req);
     990           0 :         struct dcerpc_samba_terminate_state *state = tevent_req_data(
     991             :                 req, struct dcerpc_samba_terminate_state);
     992           0 :         NTSTATUS status;
     993           0 :         TALLOC_CTX *mem_ctx;
     994             : 
     995           0 :         if (state->out_mem_ctx) {
     996           0 :                 mem_ctx = state->out_mem_ctx;
     997             :         } else {
     998           0 :                 mem_ctx = state;
     999             :         }
    1000             : 
    1001           0 :         status = dcerpc_samba_terminate_r_recv(subreq, mem_ctx);
    1002           0 :         TALLOC_FREE(subreq);
    1003           0 :         if (tevent_req_nterror(req, status)) {
    1004           0 :                 return;
    1005             :         }
    1006             : 
    1007             :         /* Copy out parameters */
    1008             : 
    1009             :         /* Reset temporary structure */
    1010           0 :         NDR_ZERO_STRUCT(state->tmp);
    1011             : 
    1012           0 :         tevent_req_done(req);
    1013             : }
    1014             : 
    1015           0 : NTSTATUS dcerpc_samba_terminate_recv(struct tevent_req *req,
    1016             :                                      TALLOC_CTX *mem_ctx)
    1017             : {
    1018           0 :         struct dcerpc_samba_terminate_state *state = tevent_req_data(
    1019             :                 req, struct dcerpc_samba_terminate_state);
    1020           0 :         NTSTATUS status;
    1021             : 
    1022           0 :         if (tevent_req_is_nterror(req, &status)) {
    1023           0 :                 tevent_req_received(req);
    1024           0 :                 return status;
    1025             :         }
    1026             : 
    1027             :         /* Steal possible out parameters to the callers context */
    1028           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1029             : 
    1030           0 :         tevent_req_received(req);
    1031           0 :         return NT_STATUS_OK;
    1032             : }
    1033             : 
    1034           0 : NTSTATUS dcerpc_samba_terminate(struct dcerpc_binding_handle *h,
    1035             :                                 TALLOC_CTX *mem_ctx,
    1036             :                                 const char * _reason /* [in] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */)
    1037             : {
    1038           0 :         struct samba_terminate r;
    1039           0 :         NTSTATUS status;
    1040             : 
    1041             :         /* In parameters */
    1042           0 :         r.in.reason = _reason;
    1043             : 
    1044             :         /* Out parameters */
    1045             : 
    1046           0 :         status = dcerpc_samba_terminate_r(h, mem_ctx, &r);
    1047           0 :         if (!NT_STATUS_IS_OK(status)) {
    1048           0 :                 return status;
    1049             :         }
    1050             : 
    1051             :         /* Return variables */
    1052             : 
    1053             :         /* Return result */
    1054             : 
    1055           0 :         return NT_STATUS_OK;
    1056             : }
    1057             : 
    1058             : struct dcerpc_dreplsrv_refresh_r_state {
    1059             :         TALLOC_CTX *out_mem_ctx;
    1060             : };
    1061             : 
    1062             : static void dcerpc_dreplsrv_refresh_r_done(struct tevent_req *subreq);
    1063             : 
    1064        1631 : struct tevent_req *dcerpc_dreplsrv_refresh_r_send(TALLOC_CTX *mem_ctx,
    1065             :         struct tevent_context *ev,
    1066             :         struct dcerpc_binding_handle *h,
    1067             :         struct dreplsrv_refresh *r)
    1068             : {
    1069           0 :         struct tevent_req *req;
    1070           0 :         struct dcerpc_dreplsrv_refresh_r_state *state;
    1071           0 :         struct tevent_req *subreq;
    1072             : 
    1073        1631 :         req = tevent_req_create(mem_ctx, &state,
    1074             :                                 struct dcerpc_dreplsrv_refresh_r_state);
    1075        1631 :         if (req == NULL) {
    1076           0 :                 return NULL;
    1077             :         }
    1078             : 
    1079        1631 :         state->out_mem_ctx = NULL;
    1080             : 
    1081        1631 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    1082             :                         NULL, &ndr_table_irpc,
    1083             :                         NDR_DREPLSRV_REFRESH, state, r);
    1084        1631 :         if (tevent_req_nomem(subreq, req)) {
    1085           0 :                 return tevent_req_post(req, ev);
    1086             :         }
    1087        1631 :         tevent_req_set_callback(subreq, dcerpc_dreplsrv_refresh_r_done, req);
    1088             : 
    1089        1631 :         return req;
    1090             : }
    1091             : 
    1092           0 : static void dcerpc_dreplsrv_refresh_r_done(struct tevent_req *subreq)
    1093             : {
    1094           0 :         struct tevent_req *req =
    1095           0 :                 tevent_req_callback_data(subreq,
    1096             :                 struct tevent_req);
    1097           0 :         NTSTATUS status;
    1098             : 
    1099           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    1100           0 :         TALLOC_FREE(subreq);
    1101           0 :         if (tevent_req_nterror(req, status)) {
    1102           0 :                 return;
    1103             :         }
    1104             : 
    1105           0 :         tevent_req_done(req);
    1106             : }
    1107             : 
    1108           0 : NTSTATUS dcerpc_dreplsrv_refresh_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    1109             : {
    1110           0 :         struct dcerpc_dreplsrv_refresh_r_state *state =
    1111           0 :                 tevent_req_data(req,
    1112             :                 struct dcerpc_dreplsrv_refresh_r_state);
    1113           0 :         NTSTATUS status;
    1114             : 
    1115           0 :         if (tevent_req_is_nterror(req, &status)) {
    1116           0 :                 tevent_req_received(req);
    1117           0 :                 return status;
    1118             :         }
    1119             : 
    1120           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1121             : 
    1122           0 :         tevent_req_received(req);
    1123           0 :         return NT_STATUS_OK;
    1124             : }
    1125             : 
    1126           0 : NTSTATUS dcerpc_dreplsrv_refresh_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct dreplsrv_refresh *r)
    1127             : {
    1128           0 :         NTSTATUS status;
    1129             : 
    1130           0 :         status = dcerpc_binding_handle_call(h,
    1131             :                         NULL, &ndr_table_irpc,
    1132             :                         NDR_DREPLSRV_REFRESH, mem_ctx, r);
    1133             : 
    1134           0 :         return status;
    1135             : }
    1136             : 
    1137             : struct dcerpc_dreplsrv_refresh_state {
    1138             :         struct dreplsrv_refresh orig;
    1139             :         struct dreplsrv_refresh tmp;
    1140             :         TALLOC_CTX *out_mem_ctx;
    1141             : };
    1142             : 
    1143             : static void dcerpc_dreplsrv_refresh_done(struct tevent_req *subreq);
    1144             : 
    1145           0 : struct tevent_req *dcerpc_dreplsrv_refresh_send(TALLOC_CTX *mem_ctx,
    1146             :                                                 struct tevent_context *ev,
    1147             :                                                 struct dcerpc_binding_handle *h)
    1148             : {
    1149           0 :         struct tevent_req *req;
    1150           0 :         struct dcerpc_dreplsrv_refresh_state *state;
    1151           0 :         struct tevent_req *subreq;
    1152             : 
    1153           0 :         req = tevent_req_create(mem_ctx, &state,
    1154             :                                 struct dcerpc_dreplsrv_refresh_state);
    1155           0 :         if (req == NULL) {
    1156           0 :                 return NULL;
    1157             :         }
    1158           0 :         state->out_mem_ctx = NULL;
    1159             : 
    1160             :         /* In parameters */
    1161             : 
    1162             :         /* Out parameters */
    1163             : 
    1164             :         /* Result */
    1165           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    1166             : 
    1167             :         /* make a temporary copy, that we pass to the dispatch function */
    1168           0 :         state->tmp = state->orig;
    1169             : 
    1170           0 :         subreq = dcerpc_dreplsrv_refresh_r_send(state, ev, h, &state->tmp);
    1171           0 :         if (tevent_req_nomem(subreq, req)) {
    1172           0 :                 return tevent_req_post(req, ev);
    1173             :         }
    1174           0 :         tevent_req_set_callback(subreq, dcerpc_dreplsrv_refresh_done, req);
    1175           0 :         return req;
    1176             : }
    1177             : 
    1178           0 : static void dcerpc_dreplsrv_refresh_done(struct tevent_req *subreq)
    1179             : {
    1180           0 :         struct tevent_req *req = tevent_req_callback_data(
    1181             :                 subreq, struct tevent_req);
    1182           0 :         struct dcerpc_dreplsrv_refresh_state *state = tevent_req_data(
    1183             :                 req, struct dcerpc_dreplsrv_refresh_state);
    1184           0 :         NTSTATUS status;
    1185           0 :         TALLOC_CTX *mem_ctx;
    1186             : 
    1187           0 :         if (state->out_mem_ctx) {
    1188           0 :                 mem_ctx = state->out_mem_ctx;
    1189             :         } else {
    1190           0 :                 mem_ctx = state;
    1191             :         }
    1192             : 
    1193           0 :         status = dcerpc_dreplsrv_refresh_r_recv(subreq, mem_ctx);
    1194           0 :         TALLOC_FREE(subreq);
    1195           0 :         if (tevent_req_nterror(req, status)) {
    1196           0 :                 return;
    1197             :         }
    1198             : 
    1199             :         /* Copy out parameters */
    1200             : 
    1201             :         /* Copy result */
    1202           0 :         state->orig.out.result = state->tmp.out.result;
    1203             : 
    1204             :         /* Reset temporary structure */
    1205           0 :         NDR_ZERO_STRUCT(state->tmp);
    1206             : 
    1207           0 :         tevent_req_done(req);
    1208             : }
    1209             : 
    1210           0 : NTSTATUS dcerpc_dreplsrv_refresh_recv(struct tevent_req *req,
    1211             :                                       TALLOC_CTX *mem_ctx,
    1212             :                                       WERROR *result)
    1213             : {
    1214           0 :         struct dcerpc_dreplsrv_refresh_state *state = tevent_req_data(
    1215             :                 req, struct dcerpc_dreplsrv_refresh_state);
    1216           0 :         NTSTATUS status;
    1217             : 
    1218           0 :         if (tevent_req_is_nterror(req, &status)) {
    1219           0 :                 tevent_req_received(req);
    1220           0 :                 return status;
    1221             :         }
    1222             : 
    1223             :         /* Steal possible out parameters to the callers context */
    1224           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1225             : 
    1226             :         /* Return result */
    1227           0 :         *result = state->orig.out.result;
    1228             : 
    1229           0 :         tevent_req_received(req);
    1230           0 :         return NT_STATUS_OK;
    1231             : }
    1232             : 
    1233           0 : NTSTATUS dcerpc_dreplsrv_refresh(struct dcerpc_binding_handle *h,
    1234             :                                  TALLOC_CTX *mem_ctx,
    1235             :                                  WERROR *result)
    1236             : {
    1237           0 :         struct dreplsrv_refresh r;
    1238           0 :         NTSTATUS status;
    1239             : 
    1240             :         /* In parameters */
    1241             : 
    1242             :         /* Out parameters */
    1243             : 
    1244             :         /* Result */
    1245           0 :         NDR_ZERO_STRUCT(r.out.result);
    1246             : 
    1247           0 :         status = dcerpc_dreplsrv_refresh_r(h, mem_ctx, &r);
    1248           0 :         if (!NT_STATUS_IS_OK(status)) {
    1249           0 :                 return status;
    1250             :         }
    1251             : 
    1252             :         /* Return variables */
    1253             : 
    1254             :         /* Return result */
    1255           0 :         *result = r.out.result;
    1256             : 
    1257           0 :         return NT_STATUS_OK;
    1258             : }
    1259             : 
    1260             : struct dcerpc_drepl_takeFSMORole_r_state {
    1261             :         TALLOC_CTX *out_mem_ctx;
    1262             : };
    1263             : 
    1264             : static void dcerpc_drepl_takeFSMORole_r_done(struct tevent_req *subreq);
    1265             : 
    1266          22 : struct tevent_req *dcerpc_drepl_takeFSMORole_r_send(TALLOC_CTX *mem_ctx,
    1267             :         struct tevent_context *ev,
    1268             :         struct dcerpc_binding_handle *h,
    1269             :         struct drepl_takeFSMORole *r)
    1270             : {
    1271           0 :         struct tevent_req *req;
    1272           0 :         struct dcerpc_drepl_takeFSMORole_r_state *state;
    1273           0 :         struct tevent_req *subreq;
    1274             : 
    1275          22 :         req = tevent_req_create(mem_ctx, &state,
    1276             :                                 struct dcerpc_drepl_takeFSMORole_r_state);
    1277          22 :         if (req == NULL) {
    1278           0 :                 return NULL;
    1279             :         }
    1280             : 
    1281          22 :         state->out_mem_ctx = NULL;
    1282             : 
    1283          22 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    1284             :                         NULL, &ndr_table_irpc,
    1285             :                         NDR_DREPL_TAKEFSMOROLE, state, r);
    1286          22 :         if (tevent_req_nomem(subreq, req)) {
    1287           0 :                 return tevent_req_post(req, ev);
    1288             :         }
    1289          22 :         tevent_req_set_callback(subreq, dcerpc_drepl_takeFSMORole_r_done, req);
    1290             : 
    1291          22 :         return req;
    1292             : }
    1293             : 
    1294          22 : static void dcerpc_drepl_takeFSMORole_r_done(struct tevent_req *subreq)
    1295             : {
    1296           0 :         struct tevent_req *req =
    1297          22 :                 tevent_req_callback_data(subreq,
    1298             :                 struct tevent_req);
    1299           0 :         NTSTATUS status;
    1300             : 
    1301          22 :         status = dcerpc_binding_handle_call_recv(subreq);
    1302          22 :         TALLOC_FREE(subreq);
    1303          22 :         if (tevent_req_nterror(req, status)) {
    1304           0 :                 return;
    1305             :         }
    1306             : 
    1307          22 :         tevent_req_done(req);
    1308             : }
    1309             : 
    1310          22 : NTSTATUS dcerpc_drepl_takeFSMORole_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    1311             : {
    1312           0 :         struct dcerpc_drepl_takeFSMORole_r_state *state =
    1313          22 :                 tevent_req_data(req,
    1314             :                 struct dcerpc_drepl_takeFSMORole_r_state);
    1315           0 :         NTSTATUS status;
    1316             : 
    1317          22 :         if (tevent_req_is_nterror(req, &status)) {
    1318           0 :                 tevent_req_received(req);
    1319           0 :                 return status;
    1320             :         }
    1321             : 
    1322          22 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1323             : 
    1324          22 :         tevent_req_received(req);
    1325          22 :         return NT_STATUS_OK;
    1326             : }
    1327             : 
    1328           0 : NTSTATUS dcerpc_drepl_takeFSMORole_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct drepl_takeFSMORole *r)
    1329             : {
    1330           0 :         NTSTATUS status;
    1331             : 
    1332           0 :         status = dcerpc_binding_handle_call(h,
    1333             :                         NULL, &ndr_table_irpc,
    1334             :                         NDR_DREPL_TAKEFSMOROLE, mem_ctx, r);
    1335             : 
    1336           0 :         return status;
    1337             : }
    1338             : 
    1339             : struct dcerpc_drepl_takeFSMORole_state {
    1340             :         struct drepl_takeFSMORole orig;
    1341             :         struct drepl_takeFSMORole tmp;
    1342             :         TALLOC_CTX *out_mem_ctx;
    1343             : };
    1344             : 
    1345             : static void dcerpc_drepl_takeFSMORole_done(struct tevent_req *subreq);
    1346             : 
    1347          22 : struct tevent_req *dcerpc_drepl_takeFSMORole_send(TALLOC_CTX *mem_ctx,
    1348             :                                                   struct tevent_context *ev,
    1349             :                                                   struct dcerpc_binding_handle *h,
    1350             :                                                   enum drepl_role_master _role /* [in]  */)
    1351             : {
    1352           0 :         struct tevent_req *req;
    1353           0 :         struct dcerpc_drepl_takeFSMORole_state *state;
    1354           0 :         struct tevent_req *subreq;
    1355             : 
    1356          22 :         req = tevent_req_create(mem_ctx, &state,
    1357             :                                 struct dcerpc_drepl_takeFSMORole_state);
    1358          22 :         if (req == NULL) {
    1359           0 :                 return NULL;
    1360             :         }
    1361          22 :         state->out_mem_ctx = NULL;
    1362             : 
    1363             :         /* In parameters */
    1364          22 :         state->orig.in.role = _role;
    1365             : 
    1366             :         /* Out parameters */
    1367             : 
    1368             :         /* Result */
    1369          22 :         NDR_ZERO_STRUCT(state->orig.out.result);
    1370             : 
    1371             :         /* make a temporary copy, that we pass to the dispatch function */
    1372          22 :         state->tmp = state->orig;
    1373             : 
    1374          22 :         subreq = dcerpc_drepl_takeFSMORole_r_send(state, ev, h, &state->tmp);
    1375          22 :         if (tevent_req_nomem(subreq, req)) {
    1376           0 :                 return tevent_req_post(req, ev);
    1377             :         }
    1378          22 :         tevent_req_set_callback(subreq, dcerpc_drepl_takeFSMORole_done, req);
    1379          22 :         return req;
    1380             : }
    1381             : 
    1382          22 : static void dcerpc_drepl_takeFSMORole_done(struct tevent_req *subreq)
    1383             : {
    1384          22 :         struct tevent_req *req = tevent_req_callback_data(
    1385             :                 subreq, struct tevent_req);
    1386          22 :         struct dcerpc_drepl_takeFSMORole_state *state = tevent_req_data(
    1387             :                 req, struct dcerpc_drepl_takeFSMORole_state);
    1388           0 :         NTSTATUS status;
    1389           0 :         TALLOC_CTX *mem_ctx;
    1390             : 
    1391          22 :         if (state->out_mem_ctx) {
    1392           0 :                 mem_ctx = state->out_mem_ctx;
    1393             :         } else {
    1394          22 :                 mem_ctx = state;
    1395             :         }
    1396             : 
    1397          22 :         status = dcerpc_drepl_takeFSMORole_r_recv(subreq, mem_ctx);
    1398          22 :         TALLOC_FREE(subreq);
    1399          22 :         if (tevent_req_nterror(req, status)) {
    1400           0 :                 return;
    1401             :         }
    1402             : 
    1403             :         /* Copy out parameters */
    1404             : 
    1405             :         /* Copy result */
    1406          22 :         state->orig.out.result = state->tmp.out.result;
    1407             : 
    1408             :         /* Reset temporary structure */
    1409          22 :         NDR_ZERO_STRUCT(state->tmp);
    1410             : 
    1411          22 :         tevent_req_done(req);
    1412             : }
    1413             : 
    1414          22 : NTSTATUS dcerpc_drepl_takeFSMORole_recv(struct tevent_req *req,
    1415             :                                         TALLOC_CTX *mem_ctx,
    1416             :                                         WERROR *result)
    1417             : {
    1418          22 :         struct dcerpc_drepl_takeFSMORole_state *state = tevent_req_data(
    1419             :                 req, struct dcerpc_drepl_takeFSMORole_state);
    1420           0 :         NTSTATUS status;
    1421             : 
    1422          22 :         if (tevent_req_is_nterror(req, &status)) {
    1423           0 :                 tevent_req_received(req);
    1424           0 :                 return status;
    1425             :         }
    1426             : 
    1427             :         /* Steal possible out parameters to the callers context */
    1428          22 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1429             : 
    1430             :         /* Return result */
    1431          22 :         *result = state->orig.out.result;
    1432             : 
    1433          22 :         tevent_req_received(req);
    1434          22 :         return NT_STATUS_OK;
    1435             : }
    1436             : 
    1437           0 : NTSTATUS dcerpc_drepl_takeFSMORole(struct dcerpc_binding_handle *h,
    1438             :                                    TALLOC_CTX *mem_ctx,
    1439             :                                    enum drepl_role_master _role /* [in]  */,
    1440             :                                    WERROR *result)
    1441             : {
    1442           0 :         struct drepl_takeFSMORole r;
    1443           0 :         NTSTATUS status;
    1444             : 
    1445             :         /* In parameters */
    1446           0 :         r.in.role = _role;
    1447             : 
    1448             :         /* Out parameters */
    1449             : 
    1450             :         /* Result */
    1451           0 :         NDR_ZERO_STRUCT(r.out.result);
    1452             : 
    1453           0 :         status = dcerpc_drepl_takeFSMORole_r(h, mem_ctx, &r);
    1454           0 :         if (!NT_STATUS_IS_OK(status)) {
    1455           0 :                 return status;
    1456             :         }
    1457             : 
    1458             :         /* Return variables */
    1459             : 
    1460             :         /* Return result */
    1461           0 :         *result = r.out.result;
    1462             : 
    1463           0 :         return NT_STATUS_OK;
    1464             : }
    1465             : 
    1466             : struct dcerpc_drepl_trigger_repl_secret_r_state {
    1467             :         TALLOC_CTX *out_mem_ctx;
    1468             : };
    1469             : 
    1470             : static void dcerpc_drepl_trigger_repl_secret_r_done(struct tevent_req *subreq);
    1471             : 
    1472        1794 : struct tevent_req *dcerpc_drepl_trigger_repl_secret_r_send(TALLOC_CTX *mem_ctx,
    1473             :         struct tevent_context *ev,
    1474             :         struct dcerpc_binding_handle *h,
    1475             :         struct drepl_trigger_repl_secret *r)
    1476             : {
    1477           0 :         struct tevent_req *req;
    1478           0 :         struct dcerpc_drepl_trigger_repl_secret_r_state *state;
    1479           0 :         struct tevent_req *subreq;
    1480             : 
    1481        1794 :         req = tevent_req_create(mem_ctx, &state,
    1482             :                                 struct dcerpc_drepl_trigger_repl_secret_r_state);
    1483        1794 :         if (req == NULL) {
    1484           0 :                 return NULL;
    1485             :         }
    1486             : 
    1487        1794 :         state->out_mem_ctx = NULL;
    1488             : 
    1489        1794 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    1490             :                         NULL, &ndr_table_irpc,
    1491             :                         NDR_DREPL_TRIGGER_REPL_SECRET, state, r);
    1492        1794 :         if (tevent_req_nomem(subreq, req)) {
    1493           0 :                 return tevent_req_post(req, ev);
    1494             :         }
    1495        1794 :         tevent_req_set_callback(subreq, dcerpc_drepl_trigger_repl_secret_r_done, req);
    1496             : 
    1497        1794 :         return req;
    1498             : }
    1499             : 
    1500           0 : static void dcerpc_drepl_trigger_repl_secret_r_done(struct tevent_req *subreq)
    1501             : {
    1502           0 :         struct tevent_req *req =
    1503           0 :                 tevent_req_callback_data(subreq,
    1504             :                 struct tevent_req);
    1505           0 :         NTSTATUS status;
    1506             : 
    1507           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    1508           0 :         TALLOC_FREE(subreq);
    1509           0 :         if (tevent_req_nterror(req, status)) {
    1510           0 :                 return;
    1511             :         }
    1512             : 
    1513           0 :         tevent_req_done(req);
    1514             : }
    1515             : 
    1516           0 : NTSTATUS dcerpc_drepl_trigger_repl_secret_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    1517             : {
    1518           0 :         struct dcerpc_drepl_trigger_repl_secret_r_state *state =
    1519           0 :                 tevent_req_data(req,
    1520             :                 struct dcerpc_drepl_trigger_repl_secret_r_state);
    1521           0 :         NTSTATUS status;
    1522             : 
    1523           0 :         if (tevent_req_is_nterror(req, &status)) {
    1524           0 :                 tevent_req_received(req);
    1525           0 :                 return status;
    1526             :         }
    1527             : 
    1528           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1529             : 
    1530           0 :         tevent_req_received(req);
    1531           0 :         return NT_STATUS_OK;
    1532             : }
    1533             : 
    1534           0 : NTSTATUS dcerpc_drepl_trigger_repl_secret_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct drepl_trigger_repl_secret *r)
    1535             : {
    1536           0 :         NTSTATUS status;
    1537             : 
    1538           0 :         status = dcerpc_binding_handle_call(h,
    1539             :                         NULL, &ndr_table_irpc,
    1540             :                         NDR_DREPL_TRIGGER_REPL_SECRET, mem_ctx, r);
    1541             : 
    1542           0 :         return status;
    1543             : }
    1544             : 
    1545             : struct dcerpc_drepl_trigger_repl_secret_state {
    1546             :         struct drepl_trigger_repl_secret orig;
    1547             :         struct drepl_trigger_repl_secret tmp;
    1548             :         TALLOC_CTX *out_mem_ctx;
    1549             : };
    1550             : 
    1551             : static void dcerpc_drepl_trigger_repl_secret_done(struct tevent_req *subreq);
    1552             : 
    1553           0 : struct tevent_req *dcerpc_drepl_trigger_repl_secret_send(TALLOC_CTX *mem_ctx,
    1554             :                                                          struct tevent_context *ev,
    1555             :                                                          struct dcerpc_binding_handle *h,
    1556             :                                                          const char * _user_dn /* [in] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */)
    1557             : {
    1558           0 :         struct tevent_req *req;
    1559           0 :         struct dcerpc_drepl_trigger_repl_secret_state *state;
    1560           0 :         struct tevent_req *subreq;
    1561             : 
    1562           0 :         req = tevent_req_create(mem_ctx, &state,
    1563             :                                 struct dcerpc_drepl_trigger_repl_secret_state);
    1564           0 :         if (req == NULL) {
    1565           0 :                 return NULL;
    1566             :         }
    1567           0 :         state->out_mem_ctx = NULL;
    1568             : 
    1569             :         /* In parameters */
    1570           0 :         state->orig.in.user_dn = _user_dn;
    1571             : 
    1572             :         /* Out parameters */
    1573             : 
    1574             :         /* make a temporary copy, that we pass to the dispatch function */
    1575           0 :         state->tmp = state->orig;
    1576             : 
    1577           0 :         subreq = dcerpc_drepl_trigger_repl_secret_r_send(state, ev, h, &state->tmp);
    1578           0 :         if (tevent_req_nomem(subreq, req)) {
    1579           0 :                 return tevent_req_post(req, ev);
    1580             :         }
    1581           0 :         tevent_req_set_callback(subreq, dcerpc_drepl_trigger_repl_secret_done, req);
    1582           0 :         return req;
    1583             : }
    1584             : 
    1585           0 : static void dcerpc_drepl_trigger_repl_secret_done(struct tevent_req *subreq)
    1586             : {
    1587           0 :         struct tevent_req *req = tevent_req_callback_data(
    1588             :                 subreq, struct tevent_req);
    1589           0 :         struct dcerpc_drepl_trigger_repl_secret_state *state = tevent_req_data(
    1590             :                 req, struct dcerpc_drepl_trigger_repl_secret_state);
    1591           0 :         NTSTATUS status;
    1592           0 :         TALLOC_CTX *mem_ctx;
    1593             : 
    1594           0 :         if (state->out_mem_ctx) {
    1595           0 :                 mem_ctx = state->out_mem_ctx;
    1596             :         } else {
    1597           0 :                 mem_ctx = state;
    1598             :         }
    1599             : 
    1600           0 :         status = dcerpc_drepl_trigger_repl_secret_r_recv(subreq, mem_ctx);
    1601           0 :         TALLOC_FREE(subreq);
    1602           0 :         if (tevent_req_nterror(req, status)) {
    1603           0 :                 return;
    1604             :         }
    1605             : 
    1606             :         /* Copy out parameters */
    1607             : 
    1608             :         /* Reset temporary structure */
    1609           0 :         NDR_ZERO_STRUCT(state->tmp);
    1610             : 
    1611           0 :         tevent_req_done(req);
    1612             : }
    1613             : 
    1614           0 : NTSTATUS dcerpc_drepl_trigger_repl_secret_recv(struct tevent_req *req,
    1615             :                                                TALLOC_CTX *mem_ctx)
    1616             : {
    1617           0 :         struct dcerpc_drepl_trigger_repl_secret_state *state = tevent_req_data(
    1618             :                 req, struct dcerpc_drepl_trigger_repl_secret_state);
    1619           0 :         NTSTATUS status;
    1620             : 
    1621           0 :         if (tevent_req_is_nterror(req, &status)) {
    1622           0 :                 tevent_req_received(req);
    1623           0 :                 return status;
    1624             :         }
    1625             : 
    1626             :         /* Steal possible out parameters to the callers context */
    1627           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1628             : 
    1629           0 :         tevent_req_received(req);
    1630           0 :         return NT_STATUS_OK;
    1631             : }
    1632             : 
    1633           0 : NTSTATUS dcerpc_drepl_trigger_repl_secret(struct dcerpc_binding_handle *h,
    1634             :                                           TALLOC_CTX *mem_ctx,
    1635             :                                           const char * _user_dn /* [in] [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */)
    1636             : {
    1637           0 :         struct drepl_trigger_repl_secret r;
    1638           0 :         NTSTATUS status;
    1639             : 
    1640             :         /* In parameters */
    1641           0 :         r.in.user_dn = _user_dn;
    1642             : 
    1643             :         /* Out parameters */
    1644             : 
    1645           0 :         status = dcerpc_drepl_trigger_repl_secret_r(h, mem_ctx, &r);
    1646           0 :         if (!NT_STATUS_IS_OK(status)) {
    1647           0 :                 return status;
    1648             :         }
    1649             : 
    1650             :         /* Return variables */
    1651             : 
    1652             :         /* Return result */
    1653             : 
    1654           0 :         return NT_STATUS_OK;
    1655             : }
    1656             : 
    1657             : struct dcerpc_dnsupdate_RODC_r_state {
    1658             :         TALLOC_CTX *out_mem_ctx;
    1659             : };
    1660             : 
    1661             : static void dcerpc_dnsupdate_RODC_r_done(struct tevent_req *subreq);
    1662             : 
    1663           5 : struct tevent_req *dcerpc_dnsupdate_RODC_r_send(TALLOC_CTX *mem_ctx,
    1664             :         struct tevent_context *ev,
    1665             :         struct dcerpc_binding_handle *h,
    1666             :         struct dnsupdate_RODC *r)
    1667             : {
    1668           0 :         struct tevent_req *req;
    1669           0 :         struct dcerpc_dnsupdate_RODC_r_state *state;
    1670           0 :         struct tevent_req *subreq;
    1671             : 
    1672           5 :         req = tevent_req_create(mem_ctx, &state,
    1673             :                                 struct dcerpc_dnsupdate_RODC_r_state);
    1674           5 :         if (req == NULL) {
    1675           0 :                 return NULL;
    1676             :         }
    1677             : 
    1678           5 :         state->out_mem_ctx = talloc_new(state);
    1679           5 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1680           0 :                 return tevent_req_post(req, ev);
    1681             :         }
    1682             : 
    1683           5 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    1684             :                         NULL, &ndr_table_irpc,
    1685           5 :                         NDR_DNSUPDATE_RODC, state->out_mem_ctx, r);
    1686           5 :         if (tevent_req_nomem(subreq, req)) {
    1687           0 :                 return tevent_req_post(req, ev);
    1688             :         }
    1689           5 :         tevent_req_set_callback(subreq, dcerpc_dnsupdate_RODC_r_done, req);
    1690             : 
    1691           5 :         return req;
    1692             : }
    1693             : 
    1694           5 : static void dcerpc_dnsupdate_RODC_r_done(struct tevent_req *subreq)
    1695             : {
    1696           0 :         struct tevent_req *req =
    1697           5 :                 tevent_req_callback_data(subreq,
    1698             :                 struct tevent_req);
    1699           0 :         NTSTATUS status;
    1700             : 
    1701           5 :         status = dcerpc_binding_handle_call_recv(subreq);
    1702           5 :         TALLOC_FREE(subreq);
    1703           5 :         if (tevent_req_nterror(req, status)) {
    1704           0 :                 return;
    1705             :         }
    1706             : 
    1707           5 :         tevent_req_done(req);
    1708             : }
    1709             : 
    1710           5 : NTSTATUS dcerpc_dnsupdate_RODC_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    1711             : {
    1712           0 :         struct dcerpc_dnsupdate_RODC_r_state *state =
    1713           5 :                 tevent_req_data(req,
    1714             :                 struct dcerpc_dnsupdate_RODC_r_state);
    1715           0 :         NTSTATUS status;
    1716             : 
    1717           5 :         if (tevent_req_is_nterror(req, &status)) {
    1718           0 :                 tevent_req_received(req);
    1719           0 :                 return status;
    1720             :         }
    1721             : 
    1722           5 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1723             : 
    1724           5 :         tevent_req_received(req);
    1725           5 :         return NT_STATUS_OK;
    1726             : }
    1727             : 
    1728           0 : NTSTATUS dcerpc_dnsupdate_RODC_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct dnsupdate_RODC *r)
    1729             : {
    1730           0 :         NTSTATUS status;
    1731             : 
    1732           0 :         status = dcerpc_binding_handle_call(h,
    1733             :                         NULL, &ndr_table_irpc,
    1734             :                         NDR_DNSUPDATE_RODC, mem_ctx, r);
    1735             : 
    1736           0 :         return status;
    1737             : }
    1738             : 
    1739             : struct dcerpc_dnsupdate_RODC_state {
    1740             :         struct dnsupdate_RODC orig;
    1741             :         struct dnsupdate_RODC tmp;
    1742             :         TALLOC_CTX *out_mem_ctx;
    1743             : };
    1744             : 
    1745             : static void dcerpc_dnsupdate_RODC_done(struct tevent_req *subreq);
    1746             : 
    1747           0 : struct tevent_req *dcerpc_dnsupdate_RODC_send(TALLOC_CTX *mem_ctx,
    1748             :                                               struct tevent_context *ev,
    1749             :                                               struct dcerpc_binding_handle *h,
    1750             :                                               struct dom_sid *_dom_sid /* [in] [unique] */,
    1751             :                                               const char *_site_name /* [in] [charset(UTF16),unique] */,
    1752             :                                               uint32_t _dns_ttl /* [in]  */,
    1753             :                                               struct NL_DNS_NAME_INFO_ARRAY *_dns_names /* [in,out] [ref] */)
    1754             : {
    1755           0 :         struct tevent_req *req;
    1756           0 :         struct dcerpc_dnsupdate_RODC_state *state;
    1757           0 :         struct tevent_req *subreq;
    1758             : 
    1759           0 :         req = tevent_req_create(mem_ctx, &state,
    1760             :                                 struct dcerpc_dnsupdate_RODC_state);
    1761           0 :         if (req == NULL) {
    1762           0 :                 return NULL;
    1763             :         }
    1764           0 :         state->out_mem_ctx = NULL;
    1765             : 
    1766             :         /* In parameters */
    1767           0 :         state->orig.in.dom_sid = _dom_sid;
    1768           0 :         state->orig.in.site_name = _site_name;
    1769           0 :         state->orig.in.dns_ttl = _dns_ttl;
    1770           0 :         state->orig.in.dns_names = _dns_names;
    1771             : 
    1772             :         /* Out parameters */
    1773           0 :         state->orig.out.dns_names = _dns_names;
    1774             : 
    1775             :         /* Result */
    1776           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    1777             : 
    1778           0 :         state->out_mem_ctx = talloc_named_const(state, 0,
    1779             :                              "dcerpc_dnsupdate_RODC_out_memory");
    1780           0 :         if (tevent_req_nomem(state->out_mem_ctx, req)) {
    1781           0 :                 return tevent_req_post(req, ev);
    1782             :         }
    1783             : 
    1784             :         /* make a temporary copy, that we pass to the dispatch function */
    1785           0 :         state->tmp = state->orig;
    1786             : 
    1787           0 :         subreq = dcerpc_dnsupdate_RODC_r_send(state, ev, h, &state->tmp);
    1788           0 :         if (tevent_req_nomem(subreq, req)) {
    1789           0 :                 return tevent_req_post(req, ev);
    1790             :         }
    1791           0 :         tevent_req_set_callback(subreq, dcerpc_dnsupdate_RODC_done, req);
    1792           0 :         return req;
    1793             : }
    1794             : 
    1795           0 : static void dcerpc_dnsupdate_RODC_done(struct tevent_req *subreq)
    1796             : {
    1797           0 :         struct tevent_req *req = tevent_req_callback_data(
    1798             :                 subreq, struct tevent_req);
    1799           0 :         struct dcerpc_dnsupdate_RODC_state *state = tevent_req_data(
    1800             :                 req, struct dcerpc_dnsupdate_RODC_state);
    1801           0 :         NTSTATUS status;
    1802           0 :         TALLOC_CTX *mem_ctx;
    1803             : 
    1804           0 :         if (state->out_mem_ctx) {
    1805           0 :                 mem_ctx = state->out_mem_ctx;
    1806             :         } else {
    1807           0 :                 mem_ctx = state;
    1808             :         }
    1809             : 
    1810           0 :         status = dcerpc_dnsupdate_RODC_r_recv(subreq, mem_ctx);
    1811           0 :         TALLOC_FREE(subreq);
    1812           0 :         if (tevent_req_nterror(req, status)) {
    1813           0 :                 return;
    1814             :         }
    1815             : 
    1816             :         /* Copy out parameters */
    1817           0 :         *state->orig.out.dns_names = *state->tmp.out.dns_names;
    1818             : 
    1819             :         /* Copy result */
    1820           0 :         state->orig.out.result = state->tmp.out.result;
    1821             : 
    1822             :         /* Reset temporary structure */
    1823           0 :         NDR_ZERO_STRUCT(state->tmp);
    1824             : 
    1825           0 :         tevent_req_done(req);
    1826             : }
    1827             : 
    1828           0 : NTSTATUS dcerpc_dnsupdate_RODC_recv(struct tevent_req *req,
    1829             :                                     TALLOC_CTX *mem_ctx,
    1830             :                                     NTSTATUS *result)
    1831             : {
    1832           0 :         struct dcerpc_dnsupdate_RODC_state *state = tevent_req_data(
    1833             :                 req, struct dcerpc_dnsupdate_RODC_state);
    1834           0 :         NTSTATUS status;
    1835             : 
    1836           0 :         if (tevent_req_is_nterror(req, &status)) {
    1837           0 :                 tevent_req_received(req);
    1838           0 :                 return status;
    1839             :         }
    1840             : 
    1841             :         /* Steal possible out parameters to the callers context */
    1842           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1843             : 
    1844             :         /* Return result */
    1845           0 :         *result = state->orig.out.result;
    1846             : 
    1847           0 :         tevent_req_received(req);
    1848           0 :         return NT_STATUS_OK;
    1849             : }
    1850             : 
    1851           0 : NTSTATUS dcerpc_dnsupdate_RODC(struct dcerpc_binding_handle *h,
    1852             :                                TALLOC_CTX *mem_ctx,
    1853             :                                struct dom_sid *_dom_sid /* [in] [unique] */,
    1854             :                                const char *_site_name /* [in] [charset(UTF16),unique] */,
    1855             :                                uint32_t _dns_ttl /* [in]  */,
    1856             :                                struct NL_DNS_NAME_INFO_ARRAY *_dns_names /* [in,out] [ref] */,
    1857             :                                NTSTATUS *result)
    1858             : {
    1859           0 :         struct dnsupdate_RODC r;
    1860           0 :         NTSTATUS status;
    1861             : 
    1862             :         /* In parameters */
    1863           0 :         r.in.dom_sid = _dom_sid;
    1864           0 :         r.in.site_name = _site_name;
    1865           0 :         r.in.dns_ttl = _dns_ttl;
    1866           0 :         r.in.dns_names = _dns_names;
    1867             : 
    1868             :         /* Out parameters */
    1869           0 :         r.out.dns_names = _dns_names;
    1870             : 
    1871             :         /* Result */
    1872           0 :         NDR_ZERO_STRUCT(r.out.result);
    1873             : 
    1874           0 :         status = dcerpc_dnsupdate_RODC_r(h, mem_ctx, &r);
    1875           0 :         if (!NT_STATUS_IS_OK(status)) {
    1876           0 :                 return status;
    1877             :         }
    1878             : 
    1879             :         /* Return variables */
    1880           0 :         *_dns_names = *r.out.dns_names;
    1881             : 
    1882             :         /* Return result */
    1883           0 :         *result = r.out.result;
    1884             : 
    1885           0 :         return NT_STATUS_OK;
    1886             : }
    1887             : 
    1888             : struct dcerpc_dnssrv_reload_dns_zones_r_state {
    1889             :         TALLOC_CTX *out_mem_ctx;
    1890             : };
    1891             : 
    1892             : static void dcerpc_dnssrv_reload_dns_zones_r_done(struct tevent_req *subreq);
    1893             : 
    1894        1222 : struct tevent_req *dcerpc_dnssrv_reload_dns_zones_r_send(TALLOC_CTX *mem_ctx,
    1895             :         struct tevent_context *ev,
    1896             :         struct dcerpc_binding_handle *h,
    1897             :         struct dnssrv_reload_dns_zones *r)
    1898             : {
    1899           0 :         struct tevent_req *req;
    1900           0 :         struct dcerpc_dnssrv_reload_dns_zones_r_state *state;
    1901           0 :         struct tevent_req *subreq;
    1902             : 
    1903        1222 :         req = tevent_req_create(mem_ctx, &state,
    1904             :                                 struct dcerpc_dnssrv_reload_dns_zones_r_state);
    1905        1222 :         if (req == NULL) {
    1906           0 :                 return NULL;
    1907             :         }
    1908             : 
    1909        1222 :         state->out_mem_ctx = NULL;
    1910             : 
    1911        1222 :         subreq = dcerpc_binding_handle_call_send(state, ev, h,
    1912             :                         NULL, &ndr_table_irpc,
    1913             :                         NDR_DNSSRV_RELOAD_DNS_ZONES, state, r);
    1914        1222 :         if (tevent_req_nomem(subreq, req)) {
    1915           0 :                 return tevent_req_post(req, ev);
    1916             :         }
    1917        1222 :         tevent_req_set_callback(subreq, dcerpc_dnssrv_reload_dns_zones_r_done, req);
    1918             : 
    1919        1222 :         return req;
    1920             : }
    1921             : 
    1922           0 : static void dcerpc_dnssrv_reload_dns_zones_r_done(struct tevent_req *subreq)
    1923             : {
    1924           0 :         struct tevent_req *req =
    1925           0 :                 tevent_req_callback_data(subreq,
    1926             :                 struct tevent_req);
    1927           0 :         NTSTATUS status;
    1928             : 
    1929           0 :         status = dcerpc_binding_handle_call_recv(subreq);
    1930           0 :         TALLOC_FREE(subreq);
    1931           0 :         if (tevent_req_nterror(req, status)) {
    1932           0 :                 return;
    1933             :         }
    1934             : 
    1935           0 :         tevent_req_done(req);
    1936             : }
    1937             : 
    1938           0 : NTSTATUS dcerpc_dnssrv_reload_dns_zones_r_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx)
    1939             : {
    1940           0 :         struct dcerpc_dnssrv_reload_dns_zones_r_state *state =
    1941           0 :                 tevent_req_data(req,
    1942             :                 struct dcerpc_dnssrv_reload_dns_zones_r_state);
    1943           0 :         NTSTATUS status;
    1944             : 
    1945           0 :         if (tevent_req_is_nterror(req, &status)) {
    1946           0 :                 tevent_req_received(req);
    1947           0 :                 return status;
    1948             :         }
    1949             : 
    1950           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    1951             : 
    1952           0 :         tevent_req_received(req);
    1953           0 :         return NT_STATUS_OK;
    1954             : }
    1955             : 
    1956           0 : NTSTATUS dcerpc_dnssrv_reload_dns_zones_r(struct dcerpc_binding_handle *h, TALLOC_CTX *mem_ctx, struct dnssrv_reload_dns_zones *r)
    1957             : {
    1958           0 :         NTSTATUS status;
    1959             : 
    1960           0 :         status = dcerpc_binding_handle_call(h,
    1961             :                         NULL, &ndr_table_irpc,
    1962             :                         NDR_DNSSRV_RELOAD_DNS_ZONES, mem_ctx, r);
    1963             : 
    1964           0 :         return status;
    1965             : }
    1966             : 
    1967             : struct dcerpc_dnssrv_reload_dns_zones_state {
    1968             :         struct dnssrv_reload_dns_zones orig;
    1969             :         struct dnssrv_reload_dns_zones tmp;
    1970             :         TALLOC_CTX *out_mem_ctx;
    1971             : };
    1972             : 
    1973             : static void dcerpc_dnssrv_reload_dns_zones_done(struct tevent_req *subreq);
    1974             : 
    1975           0 : struct tevent_req *dcerpc_dnssrv_reload_dns_zones_send(TALLOC_CTX *mem_ctx,
    1976             :                                                        struct tevent_context *ev,
    1977             :                                                        struct dcerpc_binding_handle *h)
    1978             : {
    1979           0 :         struct tevent_req *req;
    1980           0 :         struct dcerpc_dnssrv_reload_dns_zones_state *state;
    1981           0 :         struct tevent_req *subreq;
    1982             : 
    1983           0 :         req = tevent_req_create(mem_ctx, &state,
    1984             :                                 struct dcerpc_dnssrv_reload_dns_zones_state);
    1985           0 :         if (req == NULL) {
    1986           0 :                 return NULL;
    1987             :         }
    1988           0 :         state->out_mem_ctx = NULL;
    1989             : 
    1990             :         /* In parameters */
    1991             : 
    1992             :         /* Out parameters */
    1993             : 
    1994             :         /* Result */
    1995           0 :         NDR_ZERO_STRUCT(state->orig.out.result);
    1996             : 
    1997             :         /* make a temporary copy, that we pass to the dispatch function */
    1998           0 :         state->tmp = state->orig;
    1999             : 
    2000           0 :         subreq = dcerpc_dnssrv_reload_dns_zones_r_send(state, ev, h, &state->tmp);
    2001           0 :         if (tevent_req_nomem(subreq, req)) {
    2002           0 :                 return tevent_req_post(req, ev);
    2003             :         }
    2004           0 :         tevent_req_set_callback(subreq, dcerpc_dnssrv_reload_dns_zones_done, req);
    2005           0 :         return req;
    2006             : }
    2007             : 
    2008           0 : static void dcerpc_dnssrv_reload_dns_zones_done(struct tevent_req *subreq)
    2009             : {
    2010           0 :         struct tevent_req *req = tevent_req_callback_data(
    2011             :                 subreq, struct tevent_req);
    2012           0 :         struct dcerpc_dnssrv_reload_dns_zones_state *state = tevent_req_data(
    2013             :                 req, struct dcerpc_dnssrv_reload_dns_zones_state);
    2014           0 :         NTSTATUS status;
    2015           0 :         TALLOC_CTX *mem_ctx;
    2016             : 
    2017           0 :         if (state->out_mem_ctx) {
    2018           0 :                 mem_ctx = state->out_mem_ctx;
    2019             :         } else {
    2020           0 :                 mem_ctx = state;
    2021             :         }
    2022             : 
    2023           0 :         status = dcerpc_dnssrv_reload_dns_zones_r_recv(subreq, mem_ctx);
    2024           0 :         TALLOC_FREE(subreq);
    2025           0 :         if (tevent_req_nterror(req, status)) {
    2026           0 :                 return;
    2027             :         }
    2028             : 
    2029             :         /* Copy out parameters */
    2030             : 
    2031             :         /* Copy result */
    2032           0 :         state->orig.out.result = state->tmp.out.result;
    2033             : 
    2034             :         /* Reset temporary structure */
    2035           0 :         NDR_ZERO_STRUCT(state->tmp);
    2036             : 
    2037           0 :         tevent_req_done(req);
    2038             : }
    2039             : 
    2040           0 : NTSTATUS dcerpc_dnssrv_reload_dns_zones_recv(struct tevent_req *req,
    2041             :                                              TALLOC_CTX *mem_ctx,
    2042             :                                              NTSTATUS *result)
    2043             : {
    2044           0 :         struct dcerpc_dnssrv_reload_dns_zones_state *state = tevent_req_data(
    2045             :                 req, struct dcerpc_dnssrv_reload_dns_zones_state);
    2046           0 :         NTSTATUS status;
    2047             : 
    2048           0 :         if (tevent_req_is_nterror(req, &status)) {
    2049           0 :                 tevent_req_received(req);
    2050           0 :                 return status;
    2051             :         }
    2052             : 
    2053             :         /* Steal possible out parameters to the callers context */
    2054           0 :         talloc_steal(mem_ctx, state->out_mem_ctx);
    2055             : 
    2056             :         /* Return result */
    2057           0 :         *result = state->orig.out.result;
    2058             : 
    2059           0 :         tevent_req_received(req);
    2060           0 :         return NT_STATUS_OK;
    2061             : }
    2062             : 
    2063           0 : NTSTATUS dcerpc_dnssrv_reload_dns_zones(struct dcerpc_binding_handle *h,
    2064             :                                         TALLOC_CTX *mem_ctx,
    2065             :                                         NTSTATUS *result)
    2066             : {
    2067           0 :         struct dnssrv_reload_dns_zones r;
    2068           0 :         NTSTATUS status;
    2069             : 
    2070             :         /* In parameters */
    2071             : 
    2072             :         /* Out parameters */
    2073             : 
    2074             :         /* Result */
    2075           0 :         NDR_ZERO_STRUCT(r.out.result);
    2076             : 
    2077           0 :         status = dcerpc_dnssrv_reload_dns_zones_r(h, mem_ctx, &r);
    2078           0 :         if (!NT_STATUS_IS_OK(status)) {
    2079           0 :                 return status;
    2080             :         }
    2081             : 
    2082             :         /* Return variables */
    2083             : 
    2084             :         /* Return result */
    2085           0 :         *result = r.out.result;
    2086             : 
    2087           0 :         return NT_STATUS_OK;
    2088             : }
    2089             : 

Generated by: LCOV version 1.14