Re: query about sending udp packets in kernel mode

2001-02-17 Thread Olaf Titz

> sock_creat(PF_INET, SOCK_DGRAM, IPPROTO_UDP, );
> 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 = 
> 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,,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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: query about sending udp packets in kernel mode

2001-02-17 Thread Olaf Titz

 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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



Re: query about sending udp packets in kernel mode

2001-02-16 Thread Andi Kleen

[EMAIL PROTECTED] writes:

> i am getting EFAULT.

Use

mm_segment_t oldseg = get_fs();
set_fs(KERNEL_DS);

... sendmsg

set_fs(oldseg); 


-Andi

P.S.: This is really getting a FAQ. If it isn't already please someone add 
it to the linux-kernel FAQ.

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



Re: query about sending udp packets in kernel mode

2001-02-16 Thread Andi Kleen

[EMAIL PROTECTED] writes:

 i am getting EFAULT.

Use

mm_segment_t oldseg = get_fs();
set_fs(KERNEL_DS);

... sendmsg

set_fs(oldseg); 


-Andi

P.S.: This is really getting a FAQ. If it isn't already please someone add 
it to the linux-kernel FAQ.

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