Lines Matching refs:req

41     struct tevent_req *req;
47 req = tevent_req_create(mem_ctx, &state, struct sec_http_request_state);
48 if (!req) return NULL;
71 tevent_req_set_callback(subreq, sec_http_request_pipeline_done, req);
72 return req;
76 tevent_req_error(req, ret);
78 return tevent_req_post(req, state->ev);
83 struct tevent_req *req;
86 req = tevent_req_callback_data(subreq, struct tevent_req);
92 tevent_req_error(req, ret);
96 tevent_req_error(req, ret);
99 tevent_req_done(req);
103 static int sec_http_request_recv(struct tevent_req *req)
105 TEVENT_REQ_RETURN_ON_ERROR(req);
113 sec_http_request_done(struct tevent_req *req)
119 secreq = tevent_req_callback_data(req, struct sec_req_ctx);
122 ret = sec_http_request_recv(req);
151 struct tevent_req *req;
155 req = sec_http_request_send(secreq, cctx->ev, secreq);
156 if (!req) {
162 tevent_req_set_callback(req, sec_http_request_done, secreq);
178 static bool sec_too_much_data(struct sec_req_ctx *req, size_t length)
180 req->total_size += length;
181 if (req->total_size > SEC_REQUEST_MAX_SIZE) {
199 struct sec_req_ctx *req =
202 if (sec_too_much_data(req, length)) return -1;
204 sec_append_string(req, &req->request_url, at, length);
205 if (!req->request_url) {
216 struct sec_req_ctx *req =
218 int n = req->num_headers;
220 if (sec_too_much_data(req, length)) return -1;
222 if (!req->headers) {
223 req->headers = talloc_zero_array(req, struct sec_kvp, 10);
225 (req->headers[n - 1].value)) {
226 req->headers = talloc_realloc(req, req->headers,
228 if (req->headers) {
229 memset(&req->headers[n], 0, sizeof(struct sec_kvp) * 10);
232 if (!req->headers) {
238 if (!n || req->headers[n - 1].value) {
242 sec_append_string(req->headers, &req->headers[n - 1].name, at, length);
243 if (!req->headers[n - 1].name) {
255 struct sec_req_ctx *req =
257 int n = req->num_headers;
259 if (sec_too_much_data(req, length)) return -1;
261 if (!req->headers) {
267 if (req->headers[n].name && !req->headers[n].value) {
269 n = ++req->num_headers;
272 sec_append_string(req->headers, &req->headers[n - 1].value, at, length);
273 if (!req->headers[n - 1].value) {
291 struct sec_req_ctx *req =
294 if (sec_too_much_data(req, length)) return -1;
296 sec_append_string(req, &req->body.data, at, length);
297 if (!req->body.data) {
302 req->body.length += length;
325 struct sec_req_ctx *req =
331 ret = http_parser_parse_url(req->request_url,
332 strlen(req->request_url),
336 "Failed to parse URL %s\n", req->request_url);
341 ret = sec_get_parsed_field(req, UF_SCHEMA, &parsed,
342 req->request_url,
343 &req->parsed_url.schema);
346 "Failed to retrieve schema from %s\n", req->request_url);
349 DEBUG(SSSDBG_TRACE_INTERNAL, "schema: %s\n", req->parsed_url.schema);
353 ret = sec_get_parsed_field(req, UF_HOST, &parsed,
354 req->request_url,
355 &req->parsed_url.host);
358 "Failed to retrieve host from %s\n", req->request_url);
361 DEBUG(SSSDBG_TRACE_INTERNAL, "host: %s\n", req->parsed_url.host);
365 req->parsed_url.port = parsed.port;
366 DEBUG(SSSDBG_TRACE_INTERNAL, "port: %d\n", req->parsed_url.port);
370 ret = sec_get_parsed_field(req, UF_PATH, &parsed,
371 req->request_url,
372 &req->parsed_url.path);
375 "Failed to retrieve path from %s\n", req->request_url);
378 DEBUG(SSSDBG_TRACE_INTERNAL, "path: %s\n", req->parsed_url.path);
382 ret = sec_get_parsed_field(req, UF_QUERY, &parsed,
383 req->request_url,
384 &req->parsed_url.query);
387 "Failed to retrieve query from %s\n", req->request_url);
390 DEBUG(SSSDBG_TRACE_INTERNAL, "query: %s\n", req->parsed_url.query);
394 ret = sec_get_parsed_field(req, UF_FRAGMENT, &parsed,
395 req->request_url,
396 &req->parsed_url.fragment);
399 "Failed to retrieve fragment from %s\n", req->request_url);
403 "fragment: %s\n", req->parsed_url.fragment);
407 ret = sec_get_parsed_field(req, UF_USERINFO, &parsed,
408 req->request_url,
409 &req->parsed_url.userinfo);
412 "Failed to retrieve userinfo from %s\n", req->request_url);
416 "userinfo: %s\n", req->parsed_url.userinfo);
419 req->method = parser->method;
421 req->complete = true;
460 struct sec_req_ctx *req;
463 req = talloc_get_type(cctx->state_ctx, struct sec_req_ctx);
465 ret = sec_send_data(cctx->cfd, &req->reply);
514 struct sec_req_ctx *req;
522 req = talloc_get_type(cctx->state_ctx, struct sec_req_ctx);
523 if (!req) {
525 req = talloc_zero(cctx, struct sec_req_ctx);
526 if (!req) {
532 req->cctx = cctx;
533 cctx->state_ctx = req;
535 prctx->parser.data = req;
569 if (!req->complete) {