Module Name: src Committed By: pooka Date: Thu Mar 13 02:07:42 UTC 2014
Modified Files: src/sys/rump/net/lib/libnetinet: Makefile Added Files: src/sys/rump/net/lib/libnetinet: netinet_component.c Removed Files: src/sys/rump/net/lib/libnetinet: component.c Log Message: rename component.c -> netinet_component.c To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 src/sys/rump/net/lib/libnetinet/Makefile cvs rdiff -u -r1.10 -r0 src/sys/rump/net/lib/libnetinet/component.c cvs rdiff -u -r0 -r1.1 src/sys/rump/net/lib/libnetinet/netinet_component.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/rump/net/lib/libnetinet/Makefile diff -u src/sys/rump/net/lib/libnetinet/Makefile:1.4 src/sys/rump/net/lib/libnetinet/Makefile:1.5 --- src/sys/rump/net/lib/libnetinet/Makefile:1.4 Fri Dec 11 16:34:50 2009 +++ src/sys/rump/net/lib/libnetinet/Makefile Thu Mar 13 02:07:42 2014 @@ -1,9 +1,9 @@ -# $NetBSD: Makefile,v 1.4 2009/12/11 16:34:50 pooka Exp $ +# $NetBSD: Makefile,v 1.5 2014/03/13 02:07:42 pooka Exp $ # LIB= rumpnet_netinet -SRCS= component.c +SRCS= netinet_component.c .include <bsd.lib.mk> .include <bsd.klinks.mk> Added files: Index: src/sys/rump/net/lib/libnetinet/netinet_component.c diff -u /dev/null src/sys/rump/net/lib/libnetinet/netinet_component.c:1.1 --- /dev/null Thu Mar 13 02:07:42 2014 +++ src/sys/rump/net/lib/libnetinet/netinet_component.c Thu Mar 13 02:07:42 2014 @@ -0,0 +1,94 @@ +/* $NetBSD: netinet_component.c,v 1.1 2014/03/13 02:07:42 pooka Exp $ */ + +/* + * Copyright (c) 2009 Antti Kantee. All Rights Reserved. + * + * Development of this software was supported by The Nokia Foundation + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS + * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include <sys/cdefs.h> +__KERNEL_RCSID(0, "$NetBSD: netinet_component.c,v 1.1 2014/03/13 02:07:42 pooka Exp $"); + +#include <sys/param.h> +#include <sys/domain.h> +#include <sys/protosw.h> +#include <sys/socketvar.h> + +#include <net/if.h> +#include <net/netisr.h> +#include <netinet/in.h> +#include <netinet/in_var.h> +#include <netinet/ip_var.h> +#include <netinet/if_inarp.h> + +#include "rump_private.h" +#include "rump_net_private.h" + +int carpattach(int); + +RUMP_COMPONENT(RUMP_COMPONENT_NET) +{ + extern struct domain arpdomain, inetdomain; + + DOMAINADD(arpdomain); + DOMAINADD(inetdomain); + + carpattach(1); + + rump_netisr_register(NETISR_IP, ipintr); + rump_netisr_register(NETISR_ARP, arpintr); +} + +RUMP_COMPONENT(RUMP_COMPONENT_NET_IFCFG) +{ + struct ifaliasreq ia; + struct sockaddr_in *sin; + struct socket *so; + int error; + + if ((error = socreate(AF_INET, &so, SOCK_DGRAM, 0, curlwp, NULL)) != 0) + panic("lo0 config: cannot create socket"); + + /* configure 127.0.0.1 for lo0 */ + memset(&ia, 0, sizeof(ia)); + strcpy(ia.ifra_name, "lo0"); + sin = (struct sockaddr_in *)&ia.ifra_addr; + sin->sin_family = AF_INET; + sin->sin_len = sizeof(struct sockaddr_in); + sin->sin_addr.s_addr = inet_addr("127.0.0.1"); + + sin = (struct sockaddr_in *)&ia.ifra_mask; + sin->sin_family = AF_INET; + sin->sin_len = sizeof(struct sockaddr_in); + sin->sin_addr.s_addr = inet_addr("255.0.0.0"); + + sin = (struct sockaddr_in *)&ia.ifra_broadaddr; + sin->sin_family = AF_INET; + sin->sin_len = sizeof(struct sockaddr_in); + sin->sin_addr.s_addr = inet_addr("127.255.255.255"); + + in_control(so, SIOCAIFADDR, &ia, lo0ifp, curlwp); + if_up(lo0ifp); + soclose(so); +}