Lines Matching refs:req
30 struct http_client_request *req)
32 i_assert(req->conn == NULL);
33 req->conn = conn;
34 http_client_request_ref(req);
41 struct http_client_request *req = *_req;
43 i_assert(req->conn == conn);
44 req->conn = NULL;
90 struct http_client_request *req, **req_idx;
102 req = *req_idx;
107 if (req->state < HTTP_REQUEST_STATE_FINISHED) {
109 http_client_request_error(&req, status, error);
111 http_client_request_retry(req, status, error);
123 struct http_client_request *req, **req_idx;
128 req = *req_idx;
133 if (req->state < HTTP_REQUEST_STATE_FINISHED)
134 http_client_request_resubmit(req);
149 struct http_client_request *req, **req_idx;
154 req = *req_idx;
155 i_assert(req->submitted);
160 http_client_request_error(&req, status, error);
169 struct http_client_request *req, **req_idx;
173 req = *req_idx;
174 i_assert(req->submitted);
179 http_client_request_error(&req,
186 req = conn->pending_request;
190 http_client_request_error(&req,
578 struct http_client_request *req;
591 req = wait_reqs[wait_count-1];
593 req->payload_sync_continue = TRUE;
594 (void)http_client_request_send_more(req, FALSE);
602 struct http_client_request *req = NULL;
616 req = http_client_peer_claim_request(peer, pipelined);
617 if (req == NULL)
620 i_assert(req->state == HTTP_REQUEST_STATE_QUEUED);
624 req->payload_sync_continue = FALSE;
626 req->payload_sync = FALSE;
629 array_append(&conn->request_wait_list, &req, 1);
630 http_client_connection_ref_request(conn, req);
633 http_client_request_label(req));
637 ret = http_client_request_send(req, pipelined);
641 if (req->connect_tunnel)
653 if (req->payload_sync && !pshared->seen_100_response) {
655 i_assert(req->payload_chunked || req->payload_size > 0);
725 static void http_client_payload_destroyed(struct http_client_request *req)
727 struct http_client_connection *conn = req->conn;
730 i_assert(conn->pending_request == req);
736 timeval_diff_msecs(&ioloop_timeval, &req->response_time));
742 i_assert(req->response_offset < conn->conn.input->v_offset);
743 req->bytes_in = conn->conn.input->v_offset - req->response_offset;
748 http_client_request_finish(req);
770 struct http_client_connection *conn, struct http_client_request *req)
774 i_assert(req->conn == conn);
775 if (conn->pending_request != req)
801 http_client_payload_destroyed(req);
807 struct http_client_request *req,
819 http_client_connection_ref_request(conn, req);
820 req->state = HTTP_REQUEST_STATE_GOT_RESPONSE;
829 req->attempt_timeout_msecs);
832 req);
842 retrying = !http_client_request_callback(req, response);
846 http_client_request_finish(req);
847 http_client_connection_unref_request(conn, &req);
861 http_client_connection_unref_request(conn, &req);
866 req->state = HTTP_REQUEST_STATE_PAYLOAD_IN;
871 conn->pending_request = req;
881 http_client_request_finish(req);
882 http_client_connection_unref_request(conn, &req);
902 struct http_client_request *req = NULL, *req_ref;
963 req = reqs[0];
966 payload_type = http_client_request_get_payload_type(req);
968 req = NULL;
975 (count == 1 && req->state == HTTP_REQUEST_STATE_ABORTED))) {
984 if (req == NULL) {
999 req->response_time = ioloop_timeval;
1000 req->response_offset =
1002 i_assert(req->response_offset != (uoff_t)-1);
1003 i_assert(req->response_offset < conn->conn.input->v_offset);
1004 req->bytes_in = conn->conn.input->v_offset - req->response_offset;
1015 if (req->payload_sync && response.status == 100) {
1016 if (req->payload_sync_continue) {
1024 req->payload_sync_continue = TRUE;
1029 if (req->state == HTTP_REQUEST_STATE_ABORTED) {
1036 (void)http_client_request_send_more(req, FALSE);
1043 } else if (!req->payload_sync &&
1044 req->state == HTTP_REQUEST_STATE_PAYLOAD_OUT) {
1057 response.status, http_client_request_label(req),
1058 timeval_diff_msecs(&req->response_time, &req->sent_time),
1059 timeval_diff_msecs(&req->sent_time, &req->submit_time));
1062 if (req->payload_sync && !req->payload_sync_continue) {
1069 aborted = (req->state == HTTP_REQUEST_STATE_ABORTED);
1070 req_ref = req;
1073 req = NULL;
1084 http_client_request_error(&req,
1095 if (!req->payload_wait ||
1096 (req->payload_sync && !req->payload_sync_continue)) {
1098 if (response.status == 417 && req->payload_sync) {
1100 req->payload_sync = FALSE;
1103 if (http_client_request_try_retry(req))
1106 } else if (!req->client->set.no_auto_redirect &&
1110 if (http_client_request_delay_from_response(req, &response) >= 0) {
1112 (req, response.status, response.location);
1119 http_client_request_delay_from_response(req, &response) > 0 &&
1120 http_client_request_try_retry(req))
1125 if (http_client_request_try_retry(req))
1136 (conn, req, &response))
1152 req = reqs[0];
1155 payload_type = http_client_request_get_payload_type(req);
1158 req = NULL;
1165 (count == 1 && req->state == HTTP_REQUEST_STATE_ABORTED))) {
1207 struct http_client_request *req;
1215 req = reqs[count-1];
1218 if (req->state == HTTP_REQUEST_STATE_ABORTED) {
1230 if (req->payload_sync && !req->payload_sync_continue)
1237 ret = http_client_request_send_more(req, pipelined);
1346 struct http_client_request *req;
1349 req = http_client_peer_claim_request(conn->peer, FALSE);
1350 if (req != NULL) {
1359 (void)http_client_connection_return_response(conn, req, &response);
1577 struct http_client_request *req = conn->connect_request;
1588 http_client_request_start_tunnel(req, &tunnel);