Date: Mon, 21 May 2001 18:56:02 +0100 From: Ian Dowse <iedowse@maths.tcd.ie> To: Thomas Moestl <tmoestl@gmx.net> Cc: Ian Dowse <iedowse@maths.tcd.ie>, Barney Wolff <barney@databus.com>, freebsd-net@FreeBSD.ORG Subject: Re: Using connect() on UDP RPC client sockets. Message-ID: <200105211856.aa41143@salmon.maths.tcd.ie> In-Reply-To: Your message of "Mon, 21 May 2001 17:24:19 %2B0200." <20010521172419.A672@crow.dom2ip.de>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <20010521172419.A672@crow.dom2ip.de>, Thomas Moestl writes:
>
>I have a patch that does just that (although it just overloads
>IP_RECVDSTADDR for sendmsg instead of creating a new flag). I wrote it
>some time ago for a DNS server (the standard requires the source
>address to be the address the packet went to). It may need some
>resynching, but if you want, I can dig it out and prepare it for
>committing. I anyway wanted to do this some time...
Thanks! I know I had seen this somewhere - turns out I had saved
it in my freebsd-net mailbox too. Getting this functionality
committed would be a great first step towards resolving the wrong-
address issue at least between FreeBSD hosts.
I think the option should be renamed to something like IP_SENDSRCADDR
just to avoid confusion - does this seem reasonable? I'll read
through the patch shortly and maybe see if it still applies.
Actually, a bit more searching has shown up some more posibilities.
IPv6 uses a IPV6_PKTINFO option, based on the in6_pktinfo struct:
struct in6_pktinfo {
struct in6_addr ipi6_addr; /* src/dst IPv6 address */
unsigned int ipi6_ifindex; /* send/recv interface index */
};
and it seems Linux has something similar for IPv4 which uses an
IP_PKTINFO option:
struct in_pktinfo
{
unsigned int ipi_ifindex; /* Interface index */
struct in_addr ipi_spec_dst;/* Routing destination address */
struct in_addr ipi_addr; /* Header Destination address */
};
I think the idea of both is that you can specify the source address
and interface of outgoing packets, and get the destination address
and receive interface of incoming packets. I suppose the ipi_spec_dst
in the Linux in_pktinfo is to use a different destination address
for the routing table lookup; I'm not sure why you'd want to do
that though.
Would that seem a better interface to implement?
Ian
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200105211856.aa41143>
