// write to backend static ssize_t rr_instance_write(struct corerouter_peer *peer) { ssize_t len = cr_write(peer, "rr_instance_write()"); // end on empty write if (!len) return 0; // the chunk has been sent, start (again) reading from client and instances if (cr_write_complete(peer)) { // reset the buffer peer->out->pos = 0; cr_reset_hooks(peer); } return len; }
// write to client static ssize_t rr_write(struct corerouter_peer *main_peer) { ssize_t len = cr_write(main_peer, "rr_write()"); // end on empty write if (!len) return 0; // ok this response chunk is sent, let's start reading again if (cr_write_complete(main_peer)) { // reset the buffer main_peer->out->pos = 0; cr_reset_hooks(main_peer); } return len; }
// send the uwsgi request header and vars static ssize_t fr_instance_send_request(struct corerouter_peer *peer) { ssize_t len = cr_write(peer, "fr_instance_send_request()"); // end on empty write if (!len) return 0; // the chunk has been sent, start (again) reading from client and instances if (cr_write_complete(peer)) { // reset the original read buffer peer->out->pos = 0; // start waiting for body peer->session->main_peer->last_hook_read = fr_read_body; cr_reset_hooks(peer); } return len; }