From owner-freebsd-current Thu Mar 1 13:34:44 2001 Delivered-To: freebsd-current@freebsd.org Received: from mail.imp.ch (mail.imp.ch [157.161.1.2]) by hub.freebsd.org (Postfix) with ESMTP id 57A6737B71A for ; Thu, 1 Mar 2001 13:34:40 -0800 (PST) (envelope-from mb@imp.ch) Received: from levais.imp.ch (levais.imp.ch [157.161.4.66]) by mail.imp.ch (8.11.1/8.11.1) with ESMTP id f21LYZ049898; Thu, 1 Mar 2001 22:34:35 +0100 (CET) (envelope-from Martin.Blapp@imp.ch) Date: Thu, 1 Mar 2001 22:35:00 +0100 (CET) From: Martin Blapp To: Jonathan Lemon Cc: Thomas Moestl , current@freebsd.org Subject: Re: linux_connect patch In-Reply-To: <20010227224908.K20550@prism.flugsvamp.com> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG Hi Jonathan, I tested yout patch with CURRENT and STABLE, and it does fix the Staroffice Network-Problem too. I tested: Linux SO5.2 Linux Netscape 4.7 Linux linux-jdk1.3.0, green threads (digichat) and everythings works. So please commit this, and it should also go into STABLE before 4.3 is out. This fix is really necessary. Martin > + /* > + * Linux doesn't return EISCONN the first time it occurs, > + * when on a non-blocking socket. Instead it returns the > + * error getsockopt(SOL_SOCKET, SO_ERROR) would return on BSD. > + */ > + error = holdsock(p->p_fd, linux_args.s, &fp); > + if (error) > + return (error); > + error = EISCONN; > + if (fp->f_flag & FNONBLOCK) { > + so = (struct socket *)fp->f_data; > + if ((u_int)so->so_emuldata != 0) > + error = so->so_error; > + so->so_emuldata = (void *)1; > } > - > + fdrop(fp, p); > return (error); > } > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message