Hi, I meant making it non-static and using. This might be the modification we need to the upstream module, rather than introducing a 'handshake' handler formally. Was looking to see if there are any 'state machine' related catches in doing so. Thanks,Reetesh
Date: Thu, 5 Dec 2013 02:38:35 +0400 From: firstname.lastname@example.org To: email@example.com Subject: Re: How to implement handshake in an upstream module?
On Thu, Dec 05, 2013 at 02:39:28AM +0530, Reetesh Ranjan wrote:
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-request1 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 cycle3 Because of 2.2 we get a process_header() call in state R Regards,Reetesh
Obvious problem with the sequence: ngx_http_upstream_send_request() is static functions, and can't be called from a protocol module without modifications to ngx_http_upstream.c.
I don't think that handshake can be implemented without modifications to upstream module. It's designed to implement request/response logic and doesn't assume any handshakes.
-- Maxim Dounin http://nginx.org/en/donation.html
nginx-devel mailing list firstname.lastname@example.org http://mailman.nginx.org/mailman/listinfo/nginx-devel