Re: How to specify the local ip address to connect from
Marten Lehmann <[email protected]>
| Newsgroups | gmane.comp.db.tds.freetds |
|---|---|
| Message-ID | <[email protected]> |
Hello,
I'm not much into the glibc socket API, but the perl module
http://search.cpan.org/~gbarr/IO-1.25/lib/IO/Socket/INET.pm manages to
exactly do this: Define the local IP (and even port) a connection is
made from.
First it looks if the option LocalAddr is specified, otherwise it leaves
the decision to the OS:
$laddr = defined $laddr ? inet_aton($laddr) : INADDR_ANY;
And then, before connect() is called, it binds to the interface:
if($lport || ($laddr ne INADDR_ANY) || exists $arg->{Listen}) {
$sock->bind($lport || 0, $laddr) or
return _error($sock, $!, "$!");
}
If someone knows the underlying socket API of the OS, he can surely
adapt this to create a localaddr option or similar for FreeTDS.
Kind regards
Marten Lehmann
On 18.10.2012 07:36, James K. Lowden wrote:
> On Thu, 18 Oct 2012 04:18:00 +0200
> Marten Lehmann <[email protected]> wrote:
>
>> How can I set the local ip address / interface that FreeTDS connects
>> from to the remote database host?
>
> There is no facility in FreeTDS to control which interface is used. I
> cannot offhand think of any way to control that using the standard
> socket interface i.e. connect(2). That sort of thing would be
> governed by the routing tables within the machine hosting the FreeTDS
> application.
>
> If I may ask, what prompts you to introduce a firewall between your
> webserver and your database server? Surely the database server is on
> a network not accessible from the outside?
>
> --jkl
> _______________________________________________
> FreeTDS mailing list
> [email protected]
> http://lists.ibiblio.org/mailman/listinfo/freetds