Changeset 745 for trunk/server/source4/libnet/groupman.c
- Timestamp:
- Nov 27, 2012, 4:43:17 PM (13 years ago)
- Location:
- trunk/server
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server
- Property svn:mergeinfo changed
/vendor/current merged: 581,587,591,594,597,600,615,618,740
- Property svn:mergeinfo changed
-
trunk/server/source4/libnet/groupman.c
r414 r745 39 39 40 40 41 static void continue_groupadd_created(struct rpc_request *req);41 static void continue_groupadd_created(struct tevent_req *subreq); 42 42 43 43 … … 48 48 struct composite_context *c; 49 49 struct groupadd_state *s; 50 struct rpc_request *create_req;50 struct tevent_req *subreq; 51 51 52 52 if (!p || !io) return NULL; … … 77 77 s->creategroup.out.rid = &s->group_rid; 78 78 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); 83 85 return c; 84 86 } … … 100 102 101 103 102 static void continue_groupadd_created(struct rpc_request *req)104 static void continue_groupadd_created(struct tevent_req *subreq) 103 105 { 104 106 struct composite_context *c; 105 107 struct groupadd_state *s; 106 108 107 c = t alloc_get_type(req->async.private_data, struct composite_context);109 c = tevent_req_callback_data(subreq, struct composite_context); 108 110 s = talloc_get_type(c->private_data, struct groupadd_state); 109 111 110 c->status = dcerpc_ndr_request_recv(req); 112 c->status = dcerpc_samr_CreateDomainGroup_r_recv(subreq, s); 113 TALLOC_FREE(subreq); 111 114 if (!composite_is_ok(c)) return; 112 115 … … 141 144 142 145 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);146 static void continue_groupdel_name_found(struct tevent_req *subreq); 147 static void continue_groupdel_group_opened(struct tevent_req *subreq); 148 static void continue_groupdel_deleted(struct tevent_req *subreq); 146 149 147 150 … … 152 155 struct composite_context *c; 153 156 struct groupdel_state *s; 154 struct rpc_request *lookup_req;157 struct tevent_req *subreq; 155 158 156 159 /* composite context allocation and setup */ … … 179 182 180 183 /* 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); 185 190 return c; 186 191 } 187 192 188 193 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); 194 static 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); 196 200 s = talloc_get_type(c->private_data, struct groupdel_state); 197 201 198 202 /* 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); 200 205 if (!composite_is_ok(c)) return; 201 206 … … 226 231 227 232 /* 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 242 static 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); 242 248 s = talloc_get_type(c->private_data, struct groupdel_state); 243 249 244 250 /* 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); 246 253 if (!composite_is_ok(c)) return; 247 254 … … 257 264 258 265 /* 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; 261 270 262 271 /* 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 = t alloc_get_type(req->async.private_data, struct composite_context);272 tevent_req_set_callback(subreq, continue_groupdel_deleted, c); 273 } 274 275 276 static 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); 273 282 s = talloc_get_type(c->private_data, struct groupdel_state); 274 283 275 284 /* 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); 277 287 if (!composite_is_ok(c)) return; 278 288
Note:
See TracChangeset
for help on using the changeset viewer.