Hi,
Just have a look at the code at the bottom... that should make it clear.
This again is what i implemented for my project and its working fine.
> Thanks for the help. But if I am opening a socket in a lodable kernel module
> and need to send a message to a perticular IP say 158.168.1.1, then how to
> populate the structure sock_data.sin_addrs
// We dont have a inet_addr in user space.
unsigned int inet_addr(char *str)
{
int a,b,c,d;
char arr[4];
sscanf(str,"%d.%d.%d.%d",&a,&b,&c,&d);
arr[0] = a; arr[1] = b; arr[2] = c; arr[3] = d;
return *(unsigned int*)arr;
}
// Get the host...
int gethost(struct sockaddr_in *addr)
{
unsigned long ad;
addr->sin_family = AF_INET;
addr->sin_port = htons(sysctl_dos_tcpport );
ad = inet_addr("172.16.7.12");
if( ad == INADDR_NONE ){
printk("dos_select_host: Host not found");
return -EHOSTUNREACH;
}
addr->sin_addr.s_addr = ad;
return 0;
}
// Connect to the remote host...
struct socket* connect(struct sockaddr_in* sock_addr)
{
int retval;
struct socket *sock;
retval = sock_create(AF_INET,SOCK_STREAM,0,&sock);
if (retval < 0) {
printk("(connect) could not create a socket\n");
return NULL;
}
retval = sock->ops->connect(sock,
(struct sockaddr *)sock_addr,
sizeof(struct sockaddr_in),0);
if (retval < 0) {
printk("(connect) error on connect: %d\n",retval);
sock_release(sock);
return NULL;
}
return sock;
}
Hope this serves your purpose...
Prasad.
-- Failure is not an option- 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/
This archive was generated by hypermail 2b29 : Mon Mar 31 2003 - 22:00:14 EST