On Sat, Jun 07, 2003 at 12:32:42PM -0400, Kurt Starsinic wrote:

>         1. It's not *actually* using the official registry, as
>         advertised; the port numbers are hard-coded.

Thanks for the taking the time to draw up your concerns. Actually, it *is*
using the official registry, as advertised. There is an undocumented internal
method named _create_db which takes the official registry at
http://www.iana.org/assignments/port-numbers and converts it into the internal
representation to which you're referring. I do this for several reasons, and
the top reason is that it results in a distribution that *tremdously* smaller
than if it would not have been translated to an internal representation. I
discussed some of this on IRC with Dan Sugalski, and he mentioned that it would
be best to get it as small as possible (although I did not discuss any possible
implementations to accomplish this, with him). Since the port registry has much
miscellanea in the file that is not necessary to the operation of N::I::P, I
translated it to an internal representation that encodes only what is relevant.
The internal representation also results in N::I::P being ever-so-slightly
faster and less memory-intensive. If you still feel there should be an
implementation change for this point, please feel free to suggest one that you
feel would be better. :-)

>         Thus, if the registry is updated, I have no way of knowing that
>         the entries I'm using are outdated, and no way of
>         forcing an update.

There is a method last_updated() that will return the date that the IANA port
registry, that was translated, stated that it was last updated. Ostensibly,
there is no current means by which one could force an update, but I had
planned to keep a good eye on it and release new versions as necessary. If I
do include a means by which to allow users of N::I::P to force an update how
would you envision that working?

>         2. You leave out some ports "with no associated protocols."
>         I'm not sure what the value of this is; as a naive user, I
>         would expect that the module maps as in IANA's registry,
>         not as in what protocols are actually known to be deployed
>         in the wild.

Well, the problem with the sixteen services that you mention is simply that
in the port registry they have no protocols associated with them, thus I
have no idea as to how they should be "correctly represented". I figured it
would be better to disclude them than to guess, being that all of the methods
require either a port and protocol, or service and protocol. I regard these
particular entries, in the port registry, as clerical mistakes, since the
thousands of other services do indeed have associated protocols. If you have
any ideas as to how this can best be dealt with, I am all ears.

-- 
Adam J. Foxson

Reply via email to