From owner-IPv6-jp@jp.freebsd.org  Fri Jul 17 10:20:15 1998
Received: (from daemon@localhost)
	by jaz.jp.freebsd.org (8.8.8+3.0Wbeta13/8.7.3) id KAA17910;
	Fri, 17 Jul 1998 10:20:15 +0900 (JST)
	(envelope-from owner-IPv6-jp@jp.FreeBSD.org)
Received: from nwgpc.kek.jp (auryn.kek.jp [130.87.198.2])
	by jaz.jp.freebsd.org (8.8.8+3.0Wbeta13/8.7.3) with ESMTP id KAA17905
	for <IPv6-jp@jp.freebsd.org>; Fri, 17 Jul 1998 10:20:13 +0900 (JST)
	(envelope-from yamagata@nwgpc.kek.jp)
From: yamagata@nwgpc.kek.jp
Received: from nwgpc.kek.jp (localhost [127.0.0.1])
	by nwgpc.kek.jp (8.9.0/nwgpc-98.5.27) with ESMTP id KAA26583;
	Fri, 17 Jul 1998 10:20:08 +0900 (JST)
To: IPv6-jp@jp.freebsd.org
X-Mailer: Mew version 1.93b36 on Emacs 20.2 / Mule 3.0 (MOMIJINOGA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <19980717102008S.yamagata@nwgpc.kek.jp>
Date: Fri, 17 Jul 1998 10:20:08 +0900
X-Dispatcher: imput version 980702
Lines: 45
Reply-To: IPv6-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute [version 2.1 (Alpha) patchlevel=24e+ JFUG special]
X-Sequence: IPv6-jp 142
Subject: [IPv6-jp 142] portal
Errors-To: owner-IPv6-jp@jp.freebsd.org
Sender: owner-IPv6-jp@jp.freebsd.org

$B$3$s$K$A$O!";37A$G$9!#(B

kame+FreeBSD$B$N(Bmount_portal$B$G(Bipv6$B$J(Btcp$B$,;H$($k$h$&$K$7$F$_$^$7$?!#(B

$B$,!"$=$b$=$b(Bportal$B$,(B2.2.6$B$G$O$=$N$^$^$G$O;H$($^$;$s!#(B

2.2.5$B"*(B2.2.6$B$G$O(B/sys/kern/uipc_socket.c$B$N(Bsosend$B$NJQ99$K(B
$B"-$N$h$&$JItJ,$,$"$k$N$G$9$,!"(B

$B$J$<$+(Bportal$B$N(Btcp$B$r$D$+$C$?$H$-$@$1$3$N(B
EOR$B$NJ}$N>r7o$K$R$C$+$+$C$F(Bsend$B$,(Binvalid argument$B$G(B
$B%(%i!<$K$J$C$F$7$^$$$^$9!#(B

$B$J$<(Bportal$B$N$H$-$@$1(BEOR$B$,$?$D$N$+$5$C$Q$j$o$+$C$F$J$$$N$G$9$,!"(B
$B8fB8$8$NJ}$$$i$C$7$c$$$^$;$s$+!#(B

$B!t$=$b$=$b(Bportal$B$J$s$F:#;~C/$b;H$C$F$J$$$+$M!<!#(B

***************
*** 350,358 ****
         * if we over-committed, and we must use a signed comparison
         * of space and resid.  On the other hand, a negative resid
         * causes us to loop sending 0-length segments to the protocol.
         */
!       if (resid < 0)
!               return (EINVAL);
        dontroute =
            (flags & MSG_DONTROUTE) && (so->so_options & SO_DONTROUTE) == 0 &&
            (so->so_proto->pr_flags & PR_ATOMIC);
--- 351,365 ----
         * if we over-committed, and we must use a signed comparison
         * of space and resid.  On the other hand, a negative resid
         * causes us to loop sending 0-length segments to the protocol.
+        *
+        * Also check to make sure that MSG_EOR isn't used on SOCK_STREAM
+        * type sockets since that's an error.
         */
!       if (resid < 0 || so->so_type == SOCK_STREAM && (flags & MSG_EOR)) {
!               error = EINVAL;
!               goto out;
!       }
! 
        dontroute =
            (flags & MSG_DONTROUTE) && (so->so_options & SO_DONTROUTE) == 0 &&
            (so->so_proto->pr_flags & PR_ATOMIC);
