Ignore:
Timestamp:
Nov 27, 2012, 4:43:17 PM (13 years ago)
Author:
Silvan Scherrer
Message:

Samba Server: updated trunk to 3.6.0

Location:
trunk/server
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/server

  • trunk/server/source4/libnet/groupman.c

    r414 r745  
    3939
    4040
    41 static void continue_groupadd_created(struct rpc_request *req);
     41static void continue_groupadd_created(struct tevent_req *subreq);
    4242
    4343
     
    4848        struct composite_context *c;
    4949        struct groupadd_state *s;
    50         struct rpc_request *create_req;
     50        struct tevent_req *subreq;
    5151
    5252        if (!p || !io) return NULL;
     
    7777        s->creategroup.out.rid           = &s->group_rid;
    7878       
    79         create_req = dcerpc_samr_CreateDomainGroup_send(s->pipe, c, &s->creategroup);
    80         if (composite_nomem(create_req, c)) return c;
    81 
    82         composite_continue_rpc(c, create_req, continue_groupadd_created, c);
     79        subreq = dcerpc_samr_CreateDomainGroup_r_send(s, c->event_ctx,
     80                                                      s->pipe->binding_handle,
     81                                                      &s->creategroup);
     82        if (composite_nomem(subreq, c)) return c;
     83
     84        tevent_req_set_callback(subreq, continue_groupadd_created, c);
    8385        return c;
    8486}
     
    100102
    101103
    102 static void continue_groupadd_created(struct rpc_request *req)
     104static void continue_groupadd_created(struct tevent_req *subreq)
    103105{
    104106        struct composite_context *c;
    105107        struct groupadd_state *s;
    106108
    107         c = talloc_get_type(req->async.private_data, struct composite_context);
     109        c = tevent_req_callback_data(subreq, struct composite_context);
    108110        s = talloc_get_type(c->private_data, struct groupadd_state);
    109111
    110         c->status = dcerpc_ndr_request_recv(req);
     112        c->status = dcerpc_samr_CreateDomainGroup_r_recv(subreq, s);
     113        TALLOC_FREE(subreq);
    111114        if (!composite_is_ok(c)) return;
    112115
     
    141144
    142145
    143 static void continue_groupdel_name_found(struct rpc_request *req);
    144 static void continue_groupdel_group_opened(struct rpc_request *req);
    145 static void continue_groupdel_deleted(struct rpc_request *req);
     146static void continue_groupdel_name_found(struct tevent_req *subreq);
     147static void continue_groupdel_group_opened(struct tevent_req *subreq);
     148static void continue_groupdel_deleted(struct tevent_req *subreq);
    146149
    147150
     
    152155        struct composite_context *c;
    153156        struct groupdel_state *s;
    154         struct rpc_request *lookup_req;
     157        struct tevent_req *subreq;
    155158
    156159        /* composite context allocation and setup */
     
    179182
    180183        /* send the request */
    181         lookup_req = dcerpc_samr_LookupNames_send(p, c, &s->lookupname);
    182         if (composite_nomem(lookup_req, c)) return c;
    183 
    184         composite_continue_rpc(c, lookup_req, continue_groupdel_name_found, c);
     184        subreq = dcerpc_samr_LookupNames_r_send(s, c->event_ctx,
     185                                                p->binding_handle,
     186                                                &s->lookupname);
     187        if (composite_nomem(subreq, c)) return c;
     188
     189        tevent_req_set_callback(subreq, continue_groupdel_name_found, c);
    185190        return c;
    186191}
    187192
    188193
    189 static void continue_groupdel_name_found(struct rpc_request *req)
    190 {
    191         struct composite_context *c;
    192         struct groupdel_state *s;
    193         struct rpc_request *opengroup_req;
    194 
    195         c = talloc_get_type(req->async.private_data, struct composite_context);
     194static void continue_groupdel_name_found(struct tevent_req *subreq)
     195{
     196        struct composite_context *c;
     197        struct groupdel_state *s;
     198
     199        c = tevent_req_callback_data(subreq, struct composite_context);
    196200        s = talloc_get_type(c->private_data, struct groupdel_state);
    197201
    198202        /* receive samr_LookupNames result */
    199         c->status = dcerpc_ndr_request_recv(req);
     203        c->status = dcerpc_samr_LookupNames_r_recv(subreq, s);
     204        TALLOC_FREE(subreq);
    200205        if (!composite_is_ok(c)) return;
    201206
     
    226231
    227232        /* send rpc request */
    228         opengroup_req = dcerpc_samr_OpenGroup_send(s->pipe, c, &s->opengroup);
    229         if (composite_nomem(opengroup_req, c)) return;
    230 
    231         composite_continue_rpc(c, opengroup_req, continue_groupdel_group_opened, c);
    232 }
    233 
    234 
    235 static void continue_groupdel_group_opened(struct rpc_request *req)
    236 {
    237         struct composite_context *c;
    238         struct groupdel_state *s;
    239         struct rpc_request *delgroup_req;
    240 
    241         c = talloc_get_type(req->async.private_data, struct composite_context);
     233        subreq = dcerpc_samr_OpenGroup_r_send(s, c->event_ctx,
     234                                              s->pipe->binding_handle,
     235                                              &s->opengroup);
     236        if (composite_nomem(subreq, c)) return;
     237
     238        tevent_req_set_callback(subreq, continue_groupdel_group_opened, c);
     239}
     240
     241
     242static void continue_groupdel_group_opened(struct tevent_req *subreq)
     243{
     244        struct composite_context *c;
     245        struct groupdel_state *s;
     246
     247        c = tevent_req_callback_data(subreq, struct composite_context);
    242248        s = talloc_get_type(c->private_data, struct groupdel_state);
    243249
    244250        /* receive samr_OpenGroup result */
    245         c->status = dcerpc_ndr_request_recv(req);
     251        c->status = dcerpc_samr_OpenGroup_r_recv(subreq, s);
     252        TALLOC_FREE(subreq);
    246253        if (!composite_is_ok(c)) return;
    247254
     
    257264       
    258265        /* send rpc request */
    259         delgroup_req = dcerpc_samr_DeleteDomainGroup_send(s->pipe, c, &s->deletegroup);
    260         if (composite_nomem(delgroup_req, c)) return;
     266        subreq = dcerpc_samr_DeleteDomainGroup_r_send(s, c->event_ctx,
     267                                                      s->pipe->binding_handle,
     268                                                      &s->deletegroup);
     269        if (composite_nomem(subreq, c)) return;
    261270
    262271        /* callback handler setup */
    263         composite_continue_rpc(c, delgroup_req, continue_groupdel_deleted, c);
    264 }
    265 
    266 
    267 static void continue_groupdel_deleted(struct rpc_request *req)
    268 {
    269         struct composite_context *c;
    270         struct groupdel_state *s;
    271 
    272         c = talloc_get_type(req->async.private_data, struct composite_context);
     272        tevent_req_set_callback(subreq, continue_groupdel_deleted, c);
     273}
     274
     275
     276static void continue_groupdel_deleted(struct tevent_req *subreq)
     277{
     278        struct composite_context *c;
     279        struct groupdel_state *s;
     280
     281        c = tevent_req_callback_data(subreq, struct composite_context);
    273282        s = talloc_get_type(c->private_data, struct groupdel_state);
    274283
    275284        /* receive samr_DeleteGroup result */
    276         c->status = dcerpc_ndr_request_recv(req);
     285        c->status = dcerpc_samr_DeleteDomainGroup_r_recv(subreq, s);
     286        TALLOC_FREE(subreq);
    277287        if (!composite_is_ok(c)) return;
    278288
Note: See TracChangeset for help on using the changeset viewer.