Before I send my main request and process the response through create_request and process_header (and filter) callbacks, I need to have a short handshake with the upstream servers. It consists of a send() and a recv() from the upstream module. How to implement this?

Would the following sequence work?
States: H = do-handshake (initial state), R = do-request
1   In state H, send handshake req first through create_request()
2   In process_header() in state == H
     2.1  call 'create_request' again with state set to R, so main request gets created
     2.2  call 'ngx_http_upstream_send_request' manually to restart the req-response cycle
3  Because of 2.2 we get a process_header() call in state R