From owner-freebsd-java@FreeBSD.ORG Mon Sep 27 08:01:58 2010 Return-Path: Delivered-To: freebsd-java@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 927411065670 for ; Mon, 27 Sep 2010 08:01:58 +0000 (UTC) (envelope-from huanghwh@gmail.com) Received: from mail-pv0-f182.google.com (mail-pv0-f182.google.com [74.125.83.182]) by mx1.freebsd.org (Postfix) with ESMTP id 61ED28FC18 for ; Mon, 27 Sep 2010 08:01:58 +0000 (UTC) Received: by pvc21 with SMTP id 21so1435500pvc.13 for ; Mon, 27 Sep 2010 01:01:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:reply-to :in-reply-to:references:date:message-id:subject:from:to:cc :content-type; bh=tKfQzPeiWyG1O7OrQF23xy6lht23bTG19wzhsc5F6y4=; b=vAxMOhC34296tyJTX4LO5jnerh5IUlTIufktTuqHUcX+DQ5+l+FRPAEU/qMFivfFic t8kgkpa9lF5pFBBSaLZf7Qhm9mFS+z14IaHUbap6I5/hINDm7GK69Sgn+2h4faqhCSqu cV8+UCrGVDJ+gDeTbg1v6J+7J3CzjnEAoXQbg= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; b=FhTeWNtZP9z17KURauUXQmogusrwGWhpLMEI9DR22RkKCmR85ohRpnalfqJqrlE4M6 iGLNADjXvPH7FTBU24XJQBBoSEhH74Id94ERccd2B8bumHi395SQyvhYxZJkRnUqDfZc Exn7LLSAp7VQVhZI7R2SIY1kmhHN5MOuPXt9s= MIME-Version: 1.0 Received: by 10.142.4.8 with SMTP id 8mr6035515wfd.100.1285574517899; Mon, 27 Sep 2010 01:01:57 -0700 (PDT) Received: by 10.220.91.213 with HTTP; Mon, 27 Sep 2010 01:01:57 -0700 (PDT) In-Reply-To: References: Date: Mon, 27 Sep 2010 16:01:57 +0800 Message-ID: From: =?GB2312?B?u8bOxLvU?= To: freebsd-java@freebsd.org X-Mailman-Approved-At: Mon, 27 Sep 2010 11:21:16 +0000 Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Subject: Re: SCTP not work under openjdk7? X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: huanghwh@gmail.com List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 27 Sep 2010 08:01:58 -0000 2010/9/26 =BB=C6=CE=C4=BB=D4 > hi, > I try to use SCTP under FreeBSD8.1+openjdk7, It seems not work. > I use sample code from http://blogs.sun.com/chegar/entry/sctp_in_java: > > %/usr/local/openjdk7/bin/java -version > openjdk version "1.7.0" > OpenJDK Runtime Environment (build 1.7.0-root_2010_07_12_16_38-b00) > OpenJDK 64-Bit Server VM (build 19.0-b03, mixed mode) > > %/usr/local/openjdk7/bin/java DaytimeServer > Exception in thread "main" java.lang.AssertionError: Unknown event type > at sun.nio.ch.SctpPeerAddrChange.(SctpPeerAddrChange.java:75) > at sun.nio.ch.SctpChannelImpl.receive0(Native Method) > at > sun.nio.ch.SctpChannelImpl.receiveIntoNativeBuffer(SctpChannelImpl.java:8= 49) > at sun.nio.ch.SctpChannelImpl.receive(SctpChannelImpl.java:825) > at sun.nio.ch.SctpChannelImpl.receive(SctpChannelImpl.java:768) > at sun.nio.ch.SctpChannelImpl.(SctpChannelImpl.java:163) > at sun.nio.ch.SctpChannelImpl.(SctpChannelImpl.java:141) > at > sun.nio.ch.SctpServerChannelImpl.accept(SctpServerChannelImpl.java:241) > at DaytimeServer.main(DaytimeServer.java:35) > > > %/usr/local/openjdk7/bin/java DaytimeClient > New association setup with 10 outbound streams, and 10 inbound streams. > Exception in thread "main" java.net.SocketException: Connection reset by > peer > at sun.nio.ch.SctpChannelImpl.receive0(Native Method) > at > sun.nio.ch.SctpChannelImpl.receiveIntoNativeBuffer(SctpChannelImpl.java:8= 49) > at sun.nio.ch.SctpChannelImpl.receive(SctpChannelImpl.java:825) > at sun.nio.ch.SctpChannelImpl.receive(SctpChannelImpl.java:768) > at sun.nio.ch.SctpChannelImpl.receive(SctpChannelImpl.java:730) > at DaytimeClient.main(DaytimeClient.java:35) > > > anyone have this problem? > > --hwh > > > This patch make sctp works, and pass most of test case in "jdk/test/com/sun/nio/sctp" tp# diff -u SctpChannelImpl.c.orig SctpChannelImpl.c --- SctpChannelImpl.c.orig 2010-09-26 20:05:25.978142798 +0800 +++ SctpChannelImpl.c 2010-09-27 15:29:01.524449940 +0800 @@ -548,8 +548,11 @@ /* Set up the msghdr structure for sending */ memset(msg, 0, sizeof (*msg)); memset(cbuf, 0, cbuf_size); - msg->msg_name =3D &sa; - msg->msg_namelen =3D sa_len; + /* FreeBSD have to make msg->msg_name =3D NULL */ + if(sa_len !=3D 0){ + msg->msg_name =3D &sa; + msg->msg_namelen =3D sa_len; + } iov->iov_base =3D addr; iov->iov_len =3D length; msg->msg_iov =3D iov; diff -u SctpNet.c.orig SctpNet.c --- SctpNet.c.orig 2010-09-26 20:05:13.455803096 +0800 +++ SctpNet.c 2010-09-27 15:23:12.176899650 +0800 @@ -191,7 +191,9 @@ memset(&event, 0, sizeof(event)); event.sctp_data_io_event =3D 1; event.sctp_association_event =3D 1; - event.sctp_address_event =3D 1; + /* In oneToOne case, do not subscription sctp_address_event. */ + if(!oneToOne) + event.sctp_address_event =3D 1; event.sctp_send_failure_event =3D 1; //event.sctp_peer_error_event =3D 1; event.sctp_shutdown_event =3D 1;