Lines Matching refs:req
15 oauth2_token_validation_callback(struct oauth2_request *req,
19 i_assert(req->tv_callback != NULL);
20 oauth2_token_validation_callback_t *callback = req->tv_callback;
21 req->tv_callback = NULL;
22 callback(res, req->tv_context);
23 oauth2_request_free_internal(req);
27 oauth2_token_validate_continue(struct oauth2_request *req, bool success,
33 i_assert(array_is_created(&req->fields) || !success);
37 res.valid = req->valid;
42 array_foreach(&req->fields, field) {
56 res.fields = &req->fields;
58 oauth2_token_validation_callback(req, &res);
63 struct oauth2_request *req)
68 oauth2_token_validate_continue(req, FALSE, response->reason);
71 req->valid = TRUE;
73 req->valid = FALSE;
74 p_array_init(&req->fields, req->pool, 1);
77 oauth2_token_validate_continue(req, TRUE, NULL);
80 req->is = response->payload;
81 i_stream_ref(req->is);
82 req->parser = json_parser_init(req->is);
83 req->json_parsed_cb = oauth2_token_validate_continue;
84 req->io = io_add_istream(req->is, oauth2_parse_json, req);
85 oauth2_parse_json(req);
89 static void oauth2_token_validation_delayed_error(struct oauth2_request *req)
93 .error = req->delayed_error
95 oauth2_token_validation_callback(req, &fail);
111 struct oauth2_request *req =
114 req->pool = pool;
115 req->set = set;
116 req->tv_callback = callback;
117 req->tv_context = context;
120 str_append(enc, req->set->tokeninfo_url);
125 req->delayed_error = p_strdup_printf(pool,
127 req->to_delayed_error = timeout_add_short(0,
128 oauth2_token_validation_delayed_error, req);
129 return req;
132 req->req = http_client_request_url(req->set->client, "GET", url,
134 req);
137 http_client_request_set_auth_simple(req->req, url->user, url->password);
139 http_client_request_add_header(req->req,
144 oauth2_request_set_headers(req, input);
146 http_client_request_set_timeout_msecs(req->req,
147 req->set->timeout_msecs);
148 http_client_request_submit(req->req);
150 return req;