Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Feb 1997 00:36:59 +1100 (EDT)
From:      Darren Reed <avalon@coombs.anu.edu.au>
To:        davidn@labs.usn.blaze.net.au (David Nugent)
Cc:        avalon@coombs.anu.edu.au, davidn@labs.usn.blaze.net.au, freebsd-hackers@freebsd.org
Subject:   Re: "connection refused"
Message-ID:  <199702201339.FAA12811@freefall.freebsd.org>
In-Reply-To: <19970221002216.09741@usn.blaze.net.au> from "David Nugent" at Feb 21, 97 00:22:16 am

next in thread | previous in thread | raw e-mail | index | archive | help
In some mail from David Nugent, sie said:
> 
> On Feb 02, 1997 at 11:29:25PM, Darren Reed wrote:
> > > I'm currently working on a network server that needs to use local
> > > creditials on a remote connection, and if that fails, to issue a
> > > "connection refused".
> > 
> > You can't do this (using sockets).
> 
> Hmm, the manpage seems to suggest otherwise. See below.
> 
> 
> > I don't quite understand how you want to use the credentials...the
> > description seems confusing.  Can you put it in TCP/IP terms ? :)
> 
> Sorry, just the remote address, as determined by accept(). I don't
> want or need network probes finding the server, which is why I'd
> like an attempted connection from anyone but specific ip addresses
> to get "connection refused", as though there was nothing there.
> The protocol in question will do challenge/key and encryption, but
> this is just to prevent probes from seeing it as a possible target
> in the first place.
> 
> Anyway, the manpage for accept(2) states:
> 
>   One can obtain user connection request data without confirming the con-
>   nection 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 with providing only the control information, or by call-
>   ing setsockopt(2).
> 
> Unless I'm reading this incorrectly, this is precisely what I'd like
> to do. I just can work out how to do it. :-)

Try calling accept() with the host you want to accept from, rather
than INADDR_ANY.

What does it say before that ?  A connection is ESTABLISHED before it
comes back via accept().

What does Stevens have to say on this topic ?

Darren



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