Hi folks,

I'm currently working on our libwrap support in inetd. Working with the
originators of a few PR's, I've come up with a diff that gets most of
what we need right, including the severity option of hosts_options.

I'm taking on hosts_options' twist now. The problem with twist is that
it execl()'s, which isn't at all cool for the listening inetd (it's not
a problem for forked inetd processes).

I've put something together that teaches tcp_wrappers' hosts_access()
to allow the caller to frob a flag called fork_on_twist. If the flag is
set, twist_option() (the function that does the execl) will fo a fork
before the execl, with the child doing the execl and the parent failing
hosts_access.

It suddenly occured to me while I was testing this that I might be
going to a lot of trouble under the misguided assumption that a fork is
expensive. Am I wrong?

Inetd already forks for some internal services and for all external
services, so the only extra forks would be for a few of the internal
services.

Would there be a noticeable impact on inetd's if it _always_ forked
before calling hosts_access()? 

Ciao,
Sheldon.


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

Reply via email to