Lines Matching refs:req
14 oauth2_refresh_callback(struct oauth2_request *req,
18 i_assert(req->re_callback != NULL);
19 oauth2_refresh_callback_t *callback = req->re_callback;
20 req->re_callback = NULL;
21 callback(res, req->re_context);
22 oauth2_request_free_internal(req);
56 oauth2_refresh_continue(struct oauth2_request *req, bool success,
68 array_foreach(&req->fields, field) {
74 res.fields = &req->fields;
76 oauth2_refresh_callback(req, &res);
81 struct oauth2_request *req)
84 oauth2_refresh_continue(req, FALSE, response->reason);
87 oauth2_refresh_continue(req, FALSE, "Missing response body");
90 p_array_init(&req->fields, req->pool, 1);
91 req->is = response->payload;
92 i_stream_ref(req->is);
93 req->parser = json_parser_init(req->is);
94 req->json_parsed_cb = oauth2_refresh_continue;
95 req->io = io_add_istream(req->is, oauth2_parse_json, req);
96 oauth2_parse_json(req);
100 static void oauth2_refresh_delayed_error(struct oauth2_request *req)
104 .error = req->delayed_error
106 oauth2_refresh_callback(req, &fail);
119 struct oauth2_request *req =
124 req->pool = pool;
125 req->set = set;
126 req->re_callback = callback;
127 req->re_context = context;
130 if (http_url_parse(req->set->refresh_url, NULL, HTTP_URL_ALLOW_USERINFO_PART,
132 req->delayed_error = p_strdup_printf(pool,
134 req->set->refresh_url, error);
135 req->to_delayed_error = timeout_add_short(0,
136 oauth2_refresh_delayed_error, req);
137 return req;
140 req->req = http_client_request_url(req->set->client, "POST", url,
142 req);
143 string_t *payload = str_new(req->pool, 128);
145 http_url_escape_param(payload, req->set->client_secret);
149 http_url_escape_param(payload, req->set->client_id);
154 http_client_request_set_auth_simple(req->req, url->user, url->password);
156 http_client_request_add_header(req->req, "Content-Type",
159 oauth2_request_set_headers(req, input);
161 http_client_request_set_payload(req->req, is, FALSE);
163 http_client_request_set_timeout_msecs(req->req,
164 req->set->timeout_msecs);
165 http_client_request_submit(req->req);
167 return req;