Re: [INTERFACES] Asynchronous connect using libpq - Mailing list pgsql-interfaces

From Tom Lane
Subject Re: [INTERFACES] Asynchronous connect using libpq
Date
Msg-id 7232.932312914@sss.pgh.pa.us
Whole thread Raw
In response to Re: [INTERFACES] Asynchronous connect using libpq  (eem21@cam.ac.uk)
Responses Re: [INTERFACES] Asynchronous connect using libpq
List pgsql-interfaces
eem21@cam.ac.uk writes:
> I realised that some time after I sent my first message, and have been
> thinking about it since.  The delay for gethostbyname is not
> acceptable, and we are going to have to get around that problem
> elsewhere in the application anyway.  Therefore, I was thinking that I
> could arrange to pass an IP address into libpq.

A dotted-decimal address, you mean?  Yeah, that sounds like it should
work.

> With regards to the connect() problem, I was hoping that by setting the
> socket to non-blocking mode before connecting (exactly as it is
> currently done after the connect call) I could solve that problem.

By golly, there is something about non-blocking connect in the man page:
    If the socket is of type SOCK_STREAM, connect() attempts to contact    the remote host in order to make a
connectionbetween the remote    socket (peer) and the local socket specified by s.  The call normally    blocks until
theconnection completes.  If non-blocking mode has been    enabled using the O_NONBLOCK or O_NDELAY fcntl() flags or
theFIOSNBIO    ioctl() request and the connection cannot be completed immediately,    connect() returns an error as
describedbelow.  In these cases,    select() can be used on this socket to determine when the connection    has
completedby selecting it for writing.
 

Maybe you can make this work after all, with the limitation that the
user must supply a dotted-decimal IP address (or use a Unix-domain
connection) if he doesn't want to risk DNS lookup delays.

Good luck!
        regards, tom lane


pgsql-interfaces by date:

Previous
From: eem21@cam.ac.uk
Date:
Subject: Re: [INTERFACES] Asynchronous connect using libpq
Next
From: eem21@cam.ac.uk
Date:
Subject: Re: [INTERFACES] Asynchronous connect using libpq