Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Dec 2000 09:40:58 -0800
From:      Alfred Perlstein <bright@wintelcom.net>
To:        =?iso-8859-1?Q?Mikko_Ty=F6l=E4j=E4rvi?= <mikko@dynas.se>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: Rejecting a connection: is accept(2) correct?
Message-ID:  <20001214094058.C4589@fw.wintelcom.net>
In-Reply-To: <Pine.BSF.4.21.0012140905220.336-100000@explorer.rsa.com>; from mikko@dynas.se on Thu, Dec 14, 2000 at 09:12:18AM -0800
References:  <Pine.BSF.4.21.0012140905220.336-100000@explorer.rsa.com>

next in thread | previous in thread | raw e-mail | index | archive | help
* Mikko Työläjärvi <mikko@dynas.se> [001214 09:12] wrote:
> 
> AFAIK there is no portable way to reject incoming connections without
> calling accept().  However, accept(2) states:
> 
>      One can obtain user connection request data without confirming
>      the connection by issuing a recvmsg(2) call with an msg_iovlen of
>      0 and a non-zero msg_controllen, or by issuing a getsockopt(2)
>      request.  Similarly, one can provide user connection rejection
>      information by issuing a sendmsg(2) call providing only the
>      control information, or by calling setsockopt(2).
> 
> Is this really true?  A quick experiment with recvmsg() seems to
> indicate it is not, at least not for TCP sockets.

It's supposed to be used with the OSI protocols or something. :)

Adapting it to TCP would be nice, but the problem in FreeBSD at
least is that by the time a socket is in the listen queue is has
completed the TCP connection handshake.

> P.S. Anybody who claims that this works is encouraged to provide
>      proof in the form of code... :-)

hah.

-- 
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
"I have the heart of a child; I keep it in a jar on my desk."


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001214094058.C4589>