From owner-FreeBSD-users-jp@jp.freebsd.org  Sat Jun 12 23:29:35 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id XAA72823;
	Sat, 12 Jun 1999 23:29:35 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from mfo01.iij.ad.jp (mfo01.iij.ad.jp [202.232.2.118])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id XAA72818
	for <FreeBSD-users-jp@jp.freebsd.org>; Sat, 12 Jun 1999 23:29:34 +0900 (JST)
	(envelope-from hmasaki@pp.iij4u.or.jp)
Received: from pp.iij4u.or.jp (pp.iij4u.or.jp [210.130.0.40])
	by mfo01.iij.ad.jp (8.8.8/MFO1.3) with ESMTP id XAA23533
	for <FreeBSD-users-jp@jp.freebsd.org>; Sat, 12 Jun 1999 23:29:34 +0900 (JST)
Received: from localhost (h071.p065.iij4u.or.jp [210.130.65.71])
	by pp.iij4u.or.jp (8.8.8+2.2IIJ/4U1.1) with ESMTP id XAA02708;
	Sat, 12 Jun 1999 23:29:32 +0900 (JST)
To: FreeBSD-users-jp@jp.freebsd.org
Cc: hmasaki@pp.iij4u.or.jp
X-Mailer: Mew version 1.92.4 on Emacs 19.28 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <19990612232805J.hmasaki@pp.iij4u.or.jp>
Date: Sat, 12 Jun 1999 23:28:05 +0900
From: Hirokazu MASAKI <hmasaki@pp.iij4u.or.jp>
X-Dispatcher: imput version 971024
Lines: 106
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990610
X-Sequence: FreeBSD-users-jp 43139
Subject: [FreeBSD-users-jp 43139] accept() returns EFAULT
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: hmasaki@pp.iij4u.or.jp


$B@5LZ$H$$$$$^$9!#(B
$B!t$O$8$a$^$7$F$G$9!#(B

$B%W%m%0%i%`Cf$NJQ?t@k8@$N0LCV$r$+$($k$H!"(Baccept()$B$,(BEFAULT$B$rJV(B
$B$9$h$&$K$J$k!"$H$$$&8=>]$,5/$-$^$7$?!#(B

$B4D6-$O(B
  SONY VAIO PCG-505EX/64
  2.2.6-RELEASE + PAO
$B$H(B
  NEC PC-98 MATE NX ($B7?HV$O<:G0(B: $B:G6a$N$b$N(B PentiumII 350MHz)
  3.1-RELEASE
$B$N(B2$B$D$G5/$3$k$3$H$O3NG'$7$^$7$?!#(B

$B%3%s%Q%$%i$d%"%;%s%V%i!"%j%s%+$O(BRELEASE$BI8=`$N$b$N$GFC$KJQ$((B
$B$F$O$$$^$;$s!#(B

$B0J2<$,LdBj$N%=!<%9$G$9!#(B
$B!t%=!<%9$O$b$H$b$H$O!X%$%s%?!<%M%C%H$r(B256$BG\;H$&$?$a$NK\(B 
$B!t(BVol.2$B!Y(B($B%"%9%-!<(B)$B$N(Bp.74$B$K$"$k$b$N$G$9!#(B($B<c43JQ$($F$^$9(B)

$B%W%m%0%i%`$O!"%M%C%H%o!<%/$+$i$N@\B3$KBP$7$F!"(B"Execute it!"
$B$+(B"Stop it!"$B$N$I$A$i$+$GEz$($kC1=c$J$b$N$G$9!#(B

--8<--
/*
 * magi.c - Determination assist daemon
 *
 * ISBN4-7561-1927-1 p.74
 */

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>

#define BUFFER_SIZE 1024

int main(int argc, char *argv[])
{
    static char *ans[2]={"Execute it!\n","Stop it!\n"};

    int acptdsc,sockdsc; /* accept() OK */
    int ansno;
    int fromlen;

/*    int acptdsc,sockdsc; /* accept() NG */
    struct sockaddr_in sockadd,fromadd;

    sockdsc=socket(PF_INET,SOCK_STREAM,0);
    if (sockdsc < 0) {
	perror("fail to make a socket");
	exit(1);
    }

    sockadd.sin_addr.s_addr=htonl(INADDR_ANY);
    sockadd.sin_family=AF_INET;
    sockadd.sin_port=htons(5071);
    if (bind(sockdsc,(struct sockaddr *)&sockadd,sizeof(sockadd)) < 0) {
	perror("fail to bind");
	exit(2);
    }

    listen(sockdsc,1);
    while (1) {
	acptdsc=accept(sockdsc,(struct sockaddr *)&fromadd,&fromlen);
	srand((unsigned)time(NULL));
	ansno=rand() & 1;
	write(acptdsc,ans[ansno],strlen(ans[ansno]));
	close(acptdsc);
    }
}
--8<--

main()$B$NJQ?t@k8@$G(B
    int acptdsc,sockdsc;
$B$,$"$j$^$9$,!"(B $B$3$l$r%=!<%9$N(B/* accept() OK */$B$N0LCV$G@k8@$9(B
$B$k$H%W%m%0%i%`$O@5>o$K<B9T$5$l$k$N$G$9$,!"(B /* accept() NG */
$B$N0LCV$G@k8@$9$k$H(Blisten()$B8e!"(Baccept()$B$,(BEFAULT$B$rJV$9$h$&$K$J(B
$B$j$^$9!#$^$?!"(B /* accept() NG */$B$N0LCV$G!"JQ?t$r@k8@$7$F$b(B 
/* accept() OK */$B$N0LCV$K2?$+$r@k8@$7$F$*$/$H!"$3$l$^$?@5>o(B
$B$KF0:n$7$?$j$7$^$9!#(B

$B?6$kIq$$$H$7$F$h$m$7$/$J$$$H;W$&$N$G$9$,!"$I$&$J$N$G$7$g$&$+!#(B
$B$3$l$O!";d$N<j85$@$1$G5/$3$k8=>]$J$N$G$7$g$&$+!)F1MM$N8=>]$K(B
$B$"$C$?J}$O$$$i$C$7$c$k$N$G$7$g$&$+!#(B
$B!tC1$K!"%W%m%0%i%`$N=q$-J}$,$^$:$$!)!)!)(B

$B!tFMA3%W%m%0%i%`$,$^$H$b$KF0$+$J$/$J$C$F!"JQ?t@k8@$N0LCV$K$h$C(B
$B!t$F$U$k$^$$$,JQ$o$k$h$&$@!"$H$$$&$3$H$,J,$+$k$^$G$:$$$V$sG:(B
$B!t$_$^$7$?!#(B

$B8=>]$+$iF($2$k$N$OEvA3J,$+$C$F$$$k$N$G$9$,!"4D6-$K$^$:$$$H$3(B
$B$m$,$"$k$N$+$H;W$$!"$H$j$"$($:(BWeb$B$r$"$?$j;O$a$^$7$?!#$,!"K\(B
$B2H$N>c32Js9p$d2a5n$N(Bmailing list$B$G$b$=$l$i$7$-$b$N$O7!$j=P$;(B
$B$^$;$s$G$7$?!#(B
$B!t==J,$JD4::$G$O$"$j$^$;$s$,!#(B

$B2?$+4*0c$$$,$"$j$^$7$?$i;XE&$7$F$/$@$5$$!#(B

-- 
  $B@5LZ9(OB(B
       hmasaki@pp.iij4u.or.jp
