Thread (10 messages) flat view 10 messages, 5 authors, 2004-06-12

Re: UDP sockets bound to ANY send answers with wrong src ip address

From: Julian Anastasov <ja@ssi.bg>
Date: 2004-06-11 13:53:52
Also in: lkml

	Hello,

On Fri, 11 Jun 2004, Denis Vlasenko wrote:
Hmmm... do I have to set a *routing dest address* field
to set src ip address of my UDP packet?
	Try such function:

static int my_send(int fd, unsigned srcip, (struct sockaddr *) remote,
			char *data, int len)
{
	struct iovec iov = { data, len };
	struct {
		struct cmsghdr cm;
		struct in_pktinfo ipi;
	} cmsg = {
		.cm = {
			.cmsg_len	= sizeof(struct cmsghdr) +
						sizeof(struct in_pktinfo),
			.cmsg_level	= SOL_IP,
			.cmsg_type	= IP_PKTINFO,
		},
		.ipi = {
			.ipi_ifindex	= 0,
			.ipi_spec_dst	= srcip,
		},
	};
	struct msghdr m = {
		.msg_name	= remote,
		.msg_namelen	= sizeof(struct sockaddr_in),
		.msg_iov	= &iov,
		.msg_iovlen	= 1,
		.msg_control	= &cmsg,
		.msg_controllen	= sizeof(cmsg),
		.msg_flags	= 0,
	};

	return sendmsg(fd, &m, MSG_NOSIGNAL|MSG_DONTWAIT);
}

Regards

--
Julian Anastasov [off-list ref]
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help