Re: query about sending udp packets in kernel mode

Olaf Titz (olaf@bigred.inka.de)
Sat, 17 Feb 2001 11:44:25 +0100


> sock_creat(PF_INET, SOCK_DGRAM, IPPROTO_UDP, &sock);
> sin.sin_family = AF_INET;
> sin.sin_port = htons((unsigned short)serv_port);
> sin.sin_addr.s_addr = htonl(INADDR_ANY); /*i am not sure about this*/

Needs the target IP address here.

> msg.msg_name = &sin;
> msg.msglen = sizeof(struct sockaddr_in);
> msg.msg_iov = iovec_containg the message;
> msg.msg_iovlen = 1;
> msg.msg_control = NULL;
> msg.msg_controllen=0;
> msg.msg_flags =0;

{ mm_segment_t fs=get_fs();
set_fs(get_ds());

> sock->ops->sendmsg(sock,&msg,count,0);

set_fs(fs); }

"count" needs to be the total length of the message. The 0 is
redundant, sendmsg() takes only three arguments since Linux 2.1 (five
under 2.0).

Olaf
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/