From owner-p4-projects@FreeBSD.ORG Wed Mar 23 14:15:31 2005 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9C46A16A4D0; Wed, 23 Mar 2005 14:15:30 +0000 (GMT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7301316A4CF for ; Wed, 23 Mar 2005 14:15:30 +0000 (GMT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 68B3D43D48 for ; Wed, 23 Mar 2005 14:15:29 +0000 (GMT) (envelope-from davidxu@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j2NEFTdN049402 for ; Wed, 23 Mar 2005 14:15:29 GMT (envelope-from davidxu@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j2NEFTiq049399 for perforce@freebsd.org; Wed, 23 Mar 2005 14:15:29 GMT (envelope-from davidxu@freebsd.org) Date: Wed, 23 Mar 2005 14:15:29 GMT Message-Id: <200503231415.j2NEFTiq049399@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to davidxu@freebsd.org using -f From: David Xu To: Perforce Change Reviews Subject: PERFORCE change 73706 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Mar 2005 14:15:31 -0000 http://perforce.freebsd.org/chv.cgi?CH=73706 Change 73706 by davidxu@davidxu_alona on 2005/03/23 14:15:27 IFC. Affected files ... .. //depot/projects/davidxu_thread/src/etc/mtree/BSD.local.dist#3 integrate .. //depot/projects/davidxu_thread/src/etc/mtree/BSD.x11-4.dist#3 integrate .. //depot/projects/davidxu_thread/src/include/unistd.h#3 integrate .. //depot/projects/davidxu_thread/src/release/doc/zh_CN.GB2312/hardware/common/dev.sgml#2 integrate .. //depot/projects/davidxu_thread/src/release/doc/zh_CN.GB2312/hardware/i386/proc-i386.sgml#2 integrate .. //depot/projects/davidxu_thread/src/release/doc/zh_CN.GB2312/installation/common/install.sgml#2 integrate .. //depot/projects/davidxu_thread/src/sbin/mount/mount.8#4 integrate .. //depot/projects/davidxu_thread/src/sbin/reboot/reboot.c#3 integrate .. //depot/projects/davidxu_thread/src/share/man/man4/ata.4#4 integrate .. //depot/projects/davidxu_thread/src/share/man/man4/carp.4#2 integrate .. //depot/projects/davidxu_thread/src/share/man/man4/cdce.4#1 branch .. //depot/projects/davidxu_thread/src/share/man/man4/ip.4#3 integrate .. //depot/projects/davidxu_thread/src/share/man/man4/ng_netflow.4#4 integrate .. //depot/projects/davidxu_thread/src/sys/amd64/linux32/linux32_sysvec.c#5 integrate .. //depot/projects/davidxu_thread/src/sys/compat/svr4/svr4_stream.c#3 integrate .. //depot/projects/davidxu_thread/src/sys/dev/usb/if_cdce.c#1 branch .. //depot/projects/davidxu_thread/src/sys/dev/usb/if_cdcereg.h#1 branch .. //depot/projects/davidxu_thread/src/sys/i386/i386/sys_machdep.c#4 integrate .. //depot/projects/davidxu_thread/src/sys/modules/cdce/Makefile#1 branch .. //depot/projects/davidxu_thread/src/sys/netgraph/netflow/ng_netflow.c#5 integrate .. //depot/projects/davidxu_thread/src/sys/netgraph/netflow/ng_netflow.h#4 integrate .. //depot/projects/davidxu_thread/src/sys/netinet/in_pcb.c#4 integrate .. //depot/projects/davidxu_thread/src/sys/sys/exec.h#2 integrate .. //depot/projects/davidxu_thread/src/usr.bin/make/arch.h#2 integrate .. //depot/projects/davidxu_thread/src/usr.bin/make/dir.h#6 integrate .. //depot/projects/davidxu_thread/src/usr.bin/make/globals.h#2 integrate .. //depot/projects/davidxu_thread/src/usr.bin/make/var_modify.c#4 integrate .. //depot/projects/davidxu_thread/src/usr.sbin/flowctl/flowctl.8#3 integrate .. //depot/projects/davidxu_thread/src/usr.sbin/flowctl/flowctl.c#3 integrate Differences ... ==== //depot/projects/davidxu_thread/src/etc/mtree/BSD.local.dist#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.113 2004/12/04 23:30:36 kris Exp $ +# $FreeBSD: src/etc/mtree/BSD.local.dist,v 1.114 2005/03/22 18:29:41 krion Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -437,6 +437,10 @@ LC_MESSAGES .. .. + mt + LC_MESSAGES + .. + .. nb LC_MESSAGES .. ==== //depot/projects/davidxu_thread/src/etc/mtree/BSD.x11-4.dist#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/etc/mtree/BSD.x11-4.dist,v 1.25 2004/12/04 23:30:36 kris Exp $ +# $FreeBSD: src/etc/mtree/BSD.x11-4.dist,v 1.26 2005/03/22 18:29:41 krion Exp $ # # Please see the file src/etc/mtree/README before making changes to this file. # @@ -661,6 +661,10 @@ LC_MESSAGES .. .. + mt + LC_MESSAGES + .. + .. nb LC_MESSAGES .. ==== //depot/projects/davidxu_thread/src/include/unistd.h#3 (text+ko) ==== @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)unistd.h 8.12 (Berkeley) 4/27/95 - * $FreeBSD: src/include/unistd.h,v 1.75 2004/12/10 15:24:40 trhodes Exp $ + * $FreeBSD: src/include/unistd.h,v 1.76 2005/03/22 01:19:17 das Exp $ */ #ifndef _UNISTD_H_ @@ -489,7 +489,10 @@ int iruserok_sa(const void *, int, int, const char *, const char *); int issetugid(void); char *mkdtemp(char *); +#ifndef _MKNOD_DECLARED int mknod(const char *, mode_t, dev_t); +#define _MKNOD_DECLARED +#endif #ifndef _MKSTEMP_DECLARED int mkstemp(char *); #define _MKSTEMP_DECLARED ==== //depot/projects/davidxu_thread/src/release/doc/zh_CN.GB2312/hardware/common/dev.sgml#2 (text+ko) ==== @@ -1,7 +1,7 @@ 支持的处理器和主板 @@ -12,11 +12,11 @@ 不可能详尽地列举 &os; 所支持的所有设备组合。 不过, 这里给出了一些一般的指导原则。 - 几乎所有的 i386-兼容 处理器都能被很好地支持。 &os; 支持从 80386 开始的所有 - Intel 处理器, 包括 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, + 几乎所有的包含浮点运算单元的 i386-兼容 处理器都能被很好地支持。 + &os; 支持从 80486 开始的所有 Intel 处理器, + 其中包括 80486, Pentium, Pentium Pro, Pentium II, Pentium III, Pentium 4, 以及它们的一些变体, 例如 Xeon (至强) 和 Celeron (赛扬) - 处理器。 (不过, &os; 5.2-RELEASE 和之后的版本不再支持 - 80386SX 处理器。) 所有 i386-兼容 的 AMD 处理器也被支持, 这包括 + 处理器。 所有 i386-兼容 的 AMD 处理器也被支持, 这包括 Am486, Am5x86, K5, K6 (及其变体), Athlon (包括 Athlon-MP, Athlon-XP, Athlon-4, 以及 Athlon Thunderbird), 还有 Duron 处理器。 AMD ==== //depot/projects/davidxu_thread/src/release/doc/zh_CN.GB2312/installation/common/install.sgml#2 (text+ko) ==== @@ -2,8 +2,8 @@ The FreeBSD Simplified Chinese Project -Original Revision: 1.27 -$FreeBSD: src/release/doc/zh_CN.GB2312/installation/common/install.sgml,v 1.1 2004/10/15 06:43:46 delphij Exp $ +Original Revision: 1.30 +$FreeBSD: src/release/doc/zh_CN.GB2312/installation/common/install.sgml,v 1.2 2005/03/22 19:21:31 delphij Exp $ install.sgml @@ -15,13 +15,13 @@ 安装 &os; - 这一章节记述了安装一个新的 &os; 发行版本的过程。 + 这一章节介绍了安装一个新的 &os; 发行版本的过程。 这些说明重点强调了获取 &os; &release.current; 发行版本并开始安装的过程。FreeBSD + url="&url.books.handbook;/install.html">&os; 使用手册安装 - FreeBSD一章提供了有关安装程序本身更深层次的信息, + url="&url.books.handbook;/">安装 + &os;一章提供了有关安装程序本身更深层次的信息, 包括一个全程截图的指南。 如果您正在从 &os; 的前一个发行版本升级,请查看 @@ -37,11 +37,11 @@ 大部分文档,比如发行注记和硬件兼容性列表也可以在安装程序的 Documentation 菜单中查看。 - 注意 &os; FAQ使用手册 - 的在线版本也可以在 FreeBSD - 项目 Web 站点上找到,只要您拥有一条 Internet 连接。 + 注意如果您能接入 Internet 的话, &os; FAQ使用手册 + 的在线版本也可以在 &os; + 项目 Web 站点上找到。 这份文档集合可能看起来很吓人,但是阅读它们所花费的时间很可能会节省更多的时间。 熟悉可用的资源也有助于处理安装过程中的问题。 @@ -66,11 +66,10 @@ - &arch.print; 体系的 &os; 需要 486 或者更高的处理器来安装运行 - (虽然 &os; 可以用定制的内核运行在 386 处理器上), - 至少 8 兆内存来安装、7 兆内存来运行。 - 最小安装您需要有至少 150MB 的剩余磁盘空间。继续阅读查找压缩存在的 - DOS 分区用来安装 &os; 的方法。 + &os; 在 &arch.print; 系统上需要 486 + 或更高的处理器, 以及至少 24 MB 的 RAM。 + 最小安装需要至少 150MB 的剩余硬盘空间。 请阅读下面的部分, + 来了解如何缩小现有的 DOS 分区以便安装 &os; 的方法。 @@ -136,7 +135,7 @@ 通过网络获取这些映像很容易。只需要从 或者列在使用手册的 FTP + url="&url.books.handbook;/mirrors-ftp.html">FTP 站点一节或 Web 页面中的众多镜像站点中下载 release/floppies/boot.flp ==== //depot/projects/davidxu_thread/src/sbin/mount/mount.8#4 (text+ko) ==== @@ -26,7 +26,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)mount.8 8.8 (Berkeley) 6/16/94 -.\" $FreeBSD: src/sbin/mount/mount.8,v 1.71 2005/01/18 10:09:35 ru Exp $ +.\" $FreeBSD: src/sbin/mount/mount.8,v 1.72 2005/03/23 04:17:48 cperciva Exp $ .\" .Dd November 26, 2004 .Dt MOUNT 8 @@ -181,6 +181,11 @@ Do not allow execution of any binaries on the mounted file system. This option is useful for a server that has file systems containing binaries for architectures other than its own. +Note: This option was not designed as a security feature and no +guarantee is made that it will prevent malicious code execution; for +example, it is still possible to execute scripts which reside on a +.Cm noexec +mounted partition. .It Cm nosuid Do not allow set-user-identifier or set-group-identifier bits to take effect. Note: this option is worthless if a public available suid or sgid ==== //depot/projects/davidxu_thread/src/sbin/reboot/reboot.c#3 (text+ko) ==== @@ -39,7 +39,7 @@ #endif /* not lint */ #endif #include -__FBSDID("$FreeBSD: src/sbin/reboot/reboot.c,v 1.23 2005/02/10 09:19:33 ru Exp $"); +__FBSDID("$FreeBSD: src/sbin/reboot/reboot.c,v 1.24 2005/03/21 23:44:04 pjd Exp $"); #include #include @@ -117,7 +117,8 @@ } if (kernel != NULL) { - fd = open("/boot/nextboot.conf", O_WRONLY | O_CREAT, 0444); + fd = open("/boot/nextboot.conf", O_WRONLY | O_CREAT | O_TRUNC, + 0444); if (fd > -1) { (void)write(fd, "nextboot_enable=\"YES\"\n", 22); (void)write(fd, "kernel=\"", 8L); ==== //depot/projects/davidxu_thread/src/share/man/man4/ata.4#4 (text+ko) ==== @@ -25,9 +25,9 @@ .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ata.4,v 1.49 2005/02/10 10:31:32 jkoshy Exp $ +.\" $FreeBSD: src/share/man/man4/ata.4,v 1.50 2005/03/23 08:58:51 brueffer Exp $ .\" -.Dd November 4, 2003 +.Dd March 23, 2005 .Dt ATA 4 .Os .Sh NAME @@ -118,6 +118,8 @@ HPT302, HPT366, HPT366, HPT368, HPT370, HPT371, HPT372, HPT374. .It Intel: PIIX, PIIX3, PIIX4, ICH, ICH0, ICH2, ICH3, ICH4, ICH5, ICH6. +.It ITE: +IT8212F. .It National: SC1100. .It nVidia: ==== //depot/projects/davidxu_thread/src/share/man/man4/carp.4#2 (text+ko) ==== @@ -23,9 +23,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/carp.4,v 1.3 2005/02/25 10:38:43 glebius Exp $ +.\" $FreeBSD: src/share/man/man4/carp.4,v 1.4 2005/03/23 08:06:38 rse Exp $ .\" -.Dd February 25, 2005 +.Dd March 23, 2005 .Dt CARP 4 .Os .Sh NAME @@ -48,7 +48,10 @@ .Nm interface can be created at runtime using the .Nm ifconfig Li carp Ns Ar N Cm create -command or by setting up configuration in +command or by configuring +it via +.Va cloned_interfaces +in the .Pa /etc/rc.conf file. .Pp @@ -67,15 +70,6 @@ which is used to authenticate .Nm advertisements. -Finally -.Cm carpdev -is used to specify which interface the -.Nm -device attaches to. -If unspecified, the kernel attempts to set -.Cm carpdev -by looking for -another interface with the same subnet. These configurations can be done using .Xr ifconfig 8 , or through the ==== //depot/projects/davidxu_thread/src/share/man/man4/ip.4#3 (text+ko) ==== @@ -30,9 +30,9 @@ .\" SUCH DAMAGE. .\" .\" @(#)ip.4 8.2 (Berkeley) 11/30/93 -.\" $FreeBSD: src/share/man/man4/ip.4,v 1.42 2005/02/13 22:25:17 ru Exp $ +.\" $FreeBSD: src/share/man/man4/ip.4,v 1.43 2005/03/23 09:26:38 maxim Exp $ .\" -.Dd June 14, 2004 +.Dd March 23, 2005 .Dt IP 4 .Os .Sh NAME @@ -331,6 +331,21 @@ In these cases, .Va net.inet.ip.portrange.randomized can be used to toggle randomization off. +If more than +.Va net.inet.ip.portrange.randomcps +ports have been allocated in the last second, then return to sequential +port allocation. +Return to random allocation only once the current port allocation rate +drops below +.Va net.inet.ip.portrange.randomcps +for at least +.Va net.inet.ip.portrange.randomtime +seconds. +The default values for +.Va net.inet.ip.portrange.randomcps +and +.Va net.inet.ip.portrange.randomtime +are 10 port allocations per second and 45 seconds correspondingly. .Ss "Multicast Options" .Pp .Tn IP ==== //depot/projects/davidxu_thread/src/share/man/man4/ng_netflow.4#4 (text+ko) ==== @@ -1,4 +1,4 @@ -.\" Copyright (c) 2004 Gleb Smirnoff +.\" Copyright (c) 2004-2005 Gleb Smirnoff .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without @@ -22,9 +22,9 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man4/ng_netflow.4,v 1.6 2005/02/05 11:30:59 ru Exp $ +.\" $FreeBSD: src/share/man/man4/ng_netflow.4,v 1.8 2005/03/23 10:08:28 glebius Exp $ .\" -.Dd September 17, 2004 +.Dd March 23, 2005 .Os .Dt NG_NETFLOW 4 .Sh NAME @@ -66,11 +66,23 @@ hooks named .Va iface0 , iface1 , etc., +and the same number of hooks named +.Va out0 , out1 , +etc., plus a single hook named .Va export . -The node reads data on +The node does NetFlow accounting of data received on .Va iface* -hooks, and sends export datagrams to the +hooks. +If corresponding +.Va out +hook is connected, unmodified data is bypassed to it, otherwise data is freed. +If data is received on +.Va out +hook, it is bypassed to corresponding +.Va iface +hook without any processing. +When full export datagram is built it is sent to the .Va export hook. In normal operation, the @@ -186,10 +198,9 @@ flow collecting is enabled. .Bd -literal -offset indent /usr/sbin/ngctl -f- <<-SEQ - mkpeer fxp0: tee lower right - connect fxp0: fxp0:lower upper left - mkpeer fxp0:lower netflow right2left iface0 - name fxp0:lower.right2left netflow + mkpeer fxp0: netflow lower iface0 + name fxp0:lower netflow + connect fxp0: netflow: upper out0 mkpeer netflow: ksocket export inet/dgram/udp msg netflow:export connect inet/10.0.0.1:4444 SEQ @@ -204,6 +215,10 @@ .Va ng0: node in this example is connected to .Xr ng_tee 4 . +The latter sends us a copy of IP packets, which we analyze and free. +On +.Va fxp0: +we don't use tee, but send packets back to ether node. .Bd -literal -offset indent /usr/sbin/ngctl -f- <<-SEQ # connect ng0's tee to iface0 hook @@ -214,11 +229,9 @@ # set interface index (5 in this example) msg netflow: setifindex { iface=0 index=5 } - # Create tee on fxp0, and connect it to iface1 hook - mkpeer fxp0: tee lower right - connect fxp0: fxp0:lower upper left - name fxp0:lower fxp0_tee - connect fxp0_tee: netflow: right2left iface1 + # Connect fxp0: to iface1 and out1 hook + connect fxp0: netflow: lower iface1 + connect fxp0: netflow: upper out1 # Create ksocket node on export hook, and configure it # to send exports to proper destination @@ -227,6 +240,7 @@ SEQ .Ed .Sh SEE ALSO +.Xr flowctl 8 , .Xr netgraph 4 , .Xr ng_ksocket 4 , .Xr ng_tee 4 , ==== //depot/projects/davidxu_thread/src/sys/amd64/linux32/linux32_sysvec.c#5 (text+ko) ==== @@ -31,7 +31,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.6 2005/02/18 18:51:59 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/amd64/linux32/linux32_sysvec.c,v 1.7 2005/03/23 08:27:58 das Exp $"); /* XXX we use functions that might not exist. */ #include "opt_compat.h" @@ -207,9 +207,9 @@ struct linux32_ps_strings { u_int32_t ps_argvstr; /* first of 0 or more argument strings */ - int ps_nargvstr; /* the number of argument strings */ + u_int ps_nargvstr; /* the number of argument strings */ u_int32_t ps_envstr; /* first of 0 or more environment strings */ - int ps_nenvstr; /* the number of environment strings */ + u_int ps_nenvstr; /* the number of environment strings */ }; /* ==== //depot/projects/davidxu_thread/src/sys/compat/svr4/svr4_stream.c#3 (text+ko) ==== @@ -36,7 +36,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.52 2005/02/07 21:53:42 jhb Exp $"); +__FBSDID("$FreeBSD: src/sys/compat/svr4/svr4_stream.c,v 1.53 2005/03/23 08:28:06 das Exp $"); #define COMPAT_43 1 @@ -2226,6 +2226,8 @@ } if (uap->ctl) { + if (ctl.len > sizeof(sc)) + ctl.len = sizeof(sc); if (ctl.len != -1) if ((error = copyout(&sc, ctl.buf, ctl.len)) != 0) return error; ==== //depot/projects/davidxu_thread/src/sys/i386/i386/sys_machdep.c#4 (text+ko) ==== @@ -30,7 +30,7 @@ */ #include -__FBSDID("$FreeBSD: src/sys/i386/i386/sys_machdep.c,v 1.95 2005/01/26 13:59:46 sobomax Exp $"); +__FBSDID("$FreeBSD: src/sys/i386/i386/sys_machdep.c,v 1.96 2005/03/23 08:28:03 das Exp $"); #include "opt_kstack_pages.h" #include "opt_mac.h" @@ -103,6 +103,8 @@ if ((error = copyin(uap->parms, &kargs.largs, sizeof(struct i386_ldt_args))) != 0) return (error); + if (kargs.largs.num > MAX_LD || kargs.largs.num <= 0) + return (EINVAL); break; default: break; ==== //depot/projects/davidxu_thread/src/sys/netgraph/netflow/ng_netflow.c#5 (text+ko) ==== @@ -28,7 +28,7 @@ */ static const char rcs_id[] = - "@(#) $FreeBSD: src/sys/netgraph/netflow/ng_netflow.c,v 1.7 2005/03/21 15:40:25 glebius Exp $"; + "@(#) $FreeBSD: src/sys/netgraph/netflow/ng_netflow.c,v 1.8 2005/03/22 15:49:22 glebius Exp $"; #include #include @@ -235,6 +235,31 @@ */ iface->info.ifinfo_dlt = DLT_EN10MB; + } else if (strncmp(name, NG_NETFLOW_HOOK_OUT, + strlen(NG_NETFLOW_HOOK_OUT)) == 0) { + iface_p iface; + int ifnum = -1; + const char *cp; + char *eptr; + + cp = name + strlen(NG_NETFLOW_HOOK_OUT); + if (!isdigit(*cp) || (cp[0] == '0' && cp[1] != '\0')) + return (EINVAL); + + ifnum = (int)strtoul(cp, &eptr, 10); + if (*eptr != '\0' || ifnum < 0 || ifnum >= NG_NETFLOW_MAXIFACES) + return (EINVAL); + + /* See if hook is already connected */ + if (priv->ifaces[ifnum].out != NULL) + return (EISCONN); + + iface = &priv->ifaces[ifnum]; + + /* Link private info and hook together */ + NG_HOOK_SET_PRIVATE(hook, iface); + iface->out = hook; + } else if (strcmp(name, NG_NETFLOW_HOOK_EXPORT) == 0) { if (priv->export != NULL) @@ -411,12 +436,11 @@ const node_p node = NG_HOOK_NODE(hook); const priv_p priv = NG_NODE_PRIVATE(node); const iface_p iface = NG_HOOK_PRIVATE(hook); - struct mbuf *m; + struct mbuf *m = NULL; struct ip *ip; int pullup_len = 0; int error = 0; - NGI_GET_M(item, m); if (hook == priv->export) { /* * Data arrived on export hook. @@ -426,6 +450,19 @@ ERROUT(EINVAL); }; + if (hook == iface->out) { + /* + * Data arrived on out hook. Bypass it. + */ + if (iface->hook == NULL) + ERROUT(ENOTCONN); + + NG_FWD_ITEM_HOOK(error, item, iface->hook); + return (error); + } + >>> TRUNCATED FOR MAIL (1000 lines) <<<