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>