| 262 | } |
| 263 | |
| 264 | static apr_status_t send_begin_request(request_rec *r, |
| 265 | const fcgi_provider_conf *conf, |
| 266 | apr_socket_t *s, int role, |
| 267 | apr_uint16_t request_id) |
| 268 | { |
| 269 | struct iovec vec[2]; |
| 270 | ap_fcgi_header header; |
| 271 | unsigned char farray[AP_FCGI_HEADER_LEN]; |
| 272 | ap_fcgi_begin_request_body brb; |
| 273 | unsigned char abrb[AP_FCGI_HEADER_LEN]; |
| 274 | apr_size_t len; |
| 275 | |
| 276 | ap_fcgi_fill_in_header(&header, AP_FCGI_BEGIN_REQUEST, request_id, |
| 277 | sizeof(abrb), 0); |
| 278 | ap_fcgi_fill_in_request_body(&brb, role, 0 /* *NOT* AP_FCGI_KEEP_CONN */); |
| 279 | |
| 280 | ap_fcgi_header_to_array(&header, farray); |
| 281 | ap_fcgi_begin_request_body_to_array(&brb, abrb); |
| 282 | |
| 283 | vec[0].iov_base = (void *)farray; |
| 284 | vec[0].iov_len = sizeof(farray); |
| 285 | vec[1].iov_base = (void *)abrb; |
| 286 | vec[1].iov_len = sizeof(abrb); |
| 287 | |
| 288 | return sendv_data(conf, r, s, vec, 2, &len); |
| 289 | } |
| 290 | |
| 291 | static apr_status_t send_environment(apr_socket_t *s, |
| 292 | const fcgi_provider_conf *conf, |
no test coverage detected