On Wed, Oct 05, 2005 at 05:08:01PM -0400, Robert Story wrote:
> On Sun, 2 Oct 2005 15:23:40 +0200 Magnus wrote:
> MF> I have uploaded a new proposal in patch 1282566 and hope I can get some
> MF> feedback on it.
> MF> 
> MF> This is the chance to argue some more about the work.
> 
> Ok, I'll bite.

Thanks :-)

> > netsnmp_tdomain.f_create_from_tstring have an additional
> > parameter. This is unavoidable.
> 
> It has to be avoidable. We aren't going to change an existing API. Add a new
> one instead, and wrap one in the other.

I can of course add another member, f_create_from_tstring_new or some such,
last in the struct and call that one if and only if the old one is NULL.
With this change everything except for the size of the struct is preserved,
It also sucks since this kind of stopgap measurement tend to become permanent,
how do I go about deprecating the old field?

> > If the default domain comes from the database then the
> > mapping of addresses that start with / to unix is disabled.
> > This is due to the fact that IPX addresses are allowed to be
> > specified with only a port number, ie snmpd
> > '--defDomain=snmp ipx' /36879 should listen to IPX
> > port
> > 36879 and not unix domain socket /36879.
> 
> Sorry, we'er unix folks, so unless unix domain transport is completely
> disables, '/' defaults to it. I'd even argue that even in the absence of unix
> domain support, ipx transports must be explicitly stated (eg "ipx:/36879").

I can go for that, in particular I can go with the requirement to be
consistent.

Another point is that it seems the normal way to specify IPX addresses is 
network.host.port so the network:host/port style is a net-snmp invention.

A third point is that if you explicitly tells the agent that the default domain
for a certain service X is D, and then enters an address that subsequently
is treated as beeing in domain E, then that is rather surprising.

FYI: Currently the implementation does make everything starting with / a unix
address.

Oh, yes, maybe I should try to explain my current scheme better:

1) If there is a transport specifier in the address, use it
2) If there is a specifier in the default_domain parameter, use it unless
   the address starts with a '/', in that case use unix.
3) If there is an application domain, use it
4) If there is an address and it starts with '/', use unix
5) Use udp

The current mainline scheme is

1) If there is a transport specifier in the address, use it
2) If the address starts with '/', use unix
3) If there is a default_domain parameter, use it
4) Use udp

and then there is another pass if you got no match during the first pass:

5) If there is a default_domain parameter, use it
6) Use udp

so if you try to start a current agent using

snmpd -f -Lo -Dtdomain /tmp/foo:bar

it will fail since it tries to interpret /tmp/foo:bar as an udp address while
mine works.

/MF


-------------------------------------------------------
This SF.Net email is sponsored by:
Power Architecture Resource Center: Free content, downloads, discussions,
and more. http://solutions.newsforge.com/ibmarch.tmpl
_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to