hosts_access(3) - correct usage?

Guido van Rooij guido at gvr.org
Wed Oct 29 08:10:12 PST 2003


On Wed, Oct 29, 2003 at 09:38:50AM -0500, Dan Langille wrote:
> Is this the right way to use hosts_access?  The code blows up during 
> the hosts_access call.  I'm told it runs OK on Linux/Solaris.  I'm 
> wonderding if there's something different it needs to do be doing on 
> FreeBSD.
> 
> Thanks
> 
> #ifdef HAVE_LIBWRAP
>       P(mutex);               /* hosts_access is not thread safe */
>       request_init(&request, RQ_DAEMON, my_name, RQ_FILE, newsockfd, 
> 0);
>       fromhost(&request);
>       if (!hosts_access(&request)) {
>      V(mutex);
>          Jmsg2(NULL, M_WARNING, 0, _("Connection from %s:%d refused 
> by hosts.access"),
>            inet_ntoa(cli_addr.sin_addr), ntohs(cli_addr.sin_port));
>      close(newsockfd);
>      continue;
>       }
>       V(mutex);
> #endif


This seems okay to me.
OpenSSH uses:
                struct request_info req;
 
                request_init(&req, RQ_DAEMON, __progname, RQ_FILE, sock_in, 0);
                fromhost(&req);
 
                if (!hosts_access(&req)) {
                        debug("Connection refused by tcp wrapper");
                        refuse(&req);
                        /* NOTREACHED */
                        fatal("libwrap refuse returns");
                }

I take it that newsockfd is the one returned from accept()?
I'd try using a debug version of libwrap...

-Guido


More information about the freebsd-hackers mailing list