----- Original Message -----
From: "Dave Shield" <[EMAIL PROTECTED]>
To: "RH" <[EMAIL PROTECTED]>
Cc: <[email protected]>
Sent: Wednesday, September 14, 2005 9:12 AM
Subject: Re: Setting TOS option (newbie)
> On Tue, 2005-09-13 at 12:45 -0400, RH wrote:
> > I need to set the apply getsockopt() and setsockopt() against the
socket(s)
> > used to send SNMP PDUs to an agent. It's a must-have capability to
transmit
> > packets with a defined TOS option configuration.
>
> > That's obviously better than my admittedly act-of-desperation hack:
> > Defeating the detail hiding / abstraction layer and use the session
pointer
> > from snmp_open() to get access to the sock field of the
netsnmp_transport
> > member of the session_list struct associated with that session.
>
> I'm not sure exactly how you were thinking of doing (or not doing!)
> this, but I'm tempted to suggest that it may actually be the best
> way to go.
I was going to work along these lines:
struct a
{
int a1 ;
int a2 ;
} ;
struct b
{
int b1 ;
int b2 ;
} ;
struct c
{
struct a ;
struct b ;
} ;
Given a pointer to 'a' in 'struct c', as we all know you can access / modify
'b' in 'struct c'.
Considering
// snmp_api.c
struct session_list {
struct session_list *next;
netsnmp_session *session;
netsnmp_transport *transport;
struct snmp_internal_session *internal;
};
and that snmp_open() apparently returns the necessary session pointer, I was
going to try to use it to access the 'sock' field in 'transport' in
session_list.
I hadn't actually tried it yet. I'm new to net-snmp and am still at the
'looking way up' end of the learning curve.
> There is already a defined API (snmp_sess_transport) for
> retrieving the transport structure associated with a particular
> session, and the socket is one of the top-level fields of this
> transport structure. It's probably not unreasonable to access
> this field (and perhaps the transport flags field) directly.
That's exactly what I need ! Thank you very much.
I apologize for the newbie question, and greatly appreciate all the help.
> The main purpose of the module transport mechanism is to hide
> the transport-specific aspects of how things operate - this level
> of transport-independent information seems fair game, IMO.
> We *could* provide a wrapper API:
> int netsnmp_transport_socket( netsnmp_transport *);
> I suppose, but it hardly seems worth it.
>
>
> Dave
>
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server.
Download it for free - -and be entered to win a 42" plasma tv or your very
own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
Net-snmp-coders mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders