Re: query about sending udp packets in kernel mode
> 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
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
[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
[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/