Module connecting outside

Antonio Nappa jeppojeps at gmail.com
Tue Mar 21 13:42:01 UTC 2017


Hello,

By checking the ngx_http_upstream I don't see any kind of handling in case
the ngx_ssl_handshake returns NGX_ERROR, I am trying to catch this error in
order to handle network outages and subsequent reconnections attempts from
my module. Do you think this could be a good way to trigger reconnection
timer? At the moment I am handling reconnections also in the read and write
events when  if(wev->timedout || c->error || c->close).

Thanks
Antonio

2017-03-09 14:16 GMT+01:00 Maxim Dounin <mdounin at mdounin.ru>:

> Hello!
>
> On Wed, Mar 08, 2017 at 08:10:25PM +0100, Antonio Nappa wrote:
>
> > I am in the process of creating a module that connects to the outside to
> > exchange data with another service, I am taking as inspiration the
> > mail_module and the upstream module, basically my module is connecting
> > using the ngx_event_connect_peer and handling the read and write events
> > properly. I have 2 questions:
> >
> > Is this the proper way to make a module connecting to the outside?
>
> Yes.
>
> > Would it be possible to use nginx primitives to connect through SSL?
>
> To connect through SSL you sill have to use
> ngx_event_connect_peer(), and then have to use appropriate
> functions (ngx_ssl_create_connection(), ngx_ssl_handshake(), and
> so on) to initiate an SSL handshake.  Once handshake is complete,
> you can use the connection much like any other connection in
> nginx, using c->send(), c->send_chain() and so on.  Take a look on
> the ngx_http_upstream.c on how to do this properly.
>
> --
> Maxim Dounin
> http://nginx.org/
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-devel/attachments/20170321/515eefb3/attachment.html>


More information about the nginx-devel mailing list