Re: xinetd feature: daemons that listen on multiple ports

Steve G <[email protected]> Wed, 6 Aug 2003 14:23:24 -0700 (PDT)
Newsgroups gmane.network.xinetd
Message-ID <[email protected]>
Hello,

All that's truly needed in xinetd is the ability to define
an address list for the bind parameter. Just that one thing
would get us the most flexibility for the effort. This is
what other inetd's do.

I would also say that passing data structures around goes
against what all other inetd's do. Over the last month,
I've been writing the specifications for a new inetd.

I am wanting to try an experiment. Everyone has heard of
the CMMI technique. I am curious if that works for Open
Source projects as well. I surveyed all inetd's I could to
see what they do and put that into a requirements document.
The requirements are most of the way done. This would be
the RRP milestone. I also have a pretty good start on the
UML diagrams to take it to a PDR stage.

Writing new requirements has also been educational. I've
found several areas that xinetd's behavior is different
that other inetd's. Then there's IPsec and SASL. I don't
like the idea of squeezing that into xinetd as it stands.

One of the reasons I'm doing this is that I think the
xinetd code, even though its better than 2 years ago, is
way too fragile to be doing heavy changes in. 2.3.12 is
very stable compared to what we've had in a long time that
I'm reluctant to see major changes in that code base.

Starting over with a clean sheet would be a better way to
go in my opinion. For example, the sio library which has
caused so much pain over the last year is not needed at
all. If xinetd did a lot of I/O, it might make a
difference. All its used for is reading the configuration,
writing to the log if file logging is used, and writing a
state dump. As for the log files, we write one sentence and
close the file. There is no real gain, but we have had a
lot of pain. Reading config files and dumping state are
perfectly fine with read() & write().

IPsec and SASL and other things should be designed in from
the ground up. Each module should have its own unit test
that exercises it. Each module can be swung in and out at
compile time. People that want a lean inetd can compile
just the pieces they need. Vendors can compile the whole
thing.

My personal thoughts is that we should leave the xinetd
code alone and start a new version from scratch. Only do
bug fixes in the 2.3 series. My 2 cents.

-Steve Grubb

__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com