[AGENT++] AgenPro 2 problems [Re: does Agenpro2 call correct OctetStr constructor?]

Frank Fock fock at agentpp.com
Mon Sep 8 23:32:15 CEST 2003


Hi Dave,

The default value problem has now been fixed in v2.0.6c.
(You were right, the problem's root cause was an escaping clash
between Java and Velocity - not the missing IpAddress handling)

Best regards,
Frank


Dave Mason wrote:

> Hi Frank,
> I dont think we're out of the woods quite yet.  I picked up AgenPro 
> v2.0.6a but I have two problems and a question:
>
> 1. The IpAddress problem isnt fixed.  Actually, because I have six 
> bytes of data (host and port), I didnt use an IpAddress but rather an 
> octet string.  I saw where you changed cpp_code.vm, but since I didnt 
> use IpAddress, I dont think it helped, although including IpAddress 
> was probably necessary.
>
> 2. I see the new agentgen creates the code for tables when agent 
> capabilities is turned on in the project file, but I found a problem 
> with it.  The first columnar object in one of my tables (after the 
> not-accessible index object) is a DateAndTime, specified like this:
>
>   almTime OBJECT-TYPE
>      SYNTAX      DateAndTime
>      MAX-ACCESS  read-only
>      STATUS      current
>      DESCRIPTION
>         "This attribute specifies the time when the notification was 
> issued."
>      ::= { almEntry 2 }
>
> AgenPro v1.8.6 created the constructor like this:
>
> almTime::almTime(const Oidx& id):
>   MibLeaf(id, READONLY, new OctetStr())
> {
> }
>
> AgenPro v2.0.6a does this:
>
> almTime::almTime(const Oidx& id):
>    DateAndTime(id, READONLY, VMODE_DEFAULT)
> {
> }
>
> You'll see that the "new OctetStr()" is not done, so the agent crashes 
> later when I try to assign a value.  This problem also occurs with 
> scalar DateAndTime objects, but I didnt see this problem for any other 
> syntax.
>
> 3. I'm not sure if this is a problem, but I thought I'd run it by 
> you.  The MIB module I'm working with is defined like this:
>
>   ttiWsNotification MODULE-IDENTITY
>      LAST-UPDATED "200206120000Z" -- Midnight June 12, 2002
>      ORGANIZATION "Transat Technologies, Inc."
>      CONTACT-INFO ".."
>      DESCRIPTION  "Notifications MIB."
>      REVISION     "200206120000Z" -- Midnight June 12, 2002
>      DESCRIPTION  "Initial version."                      ::= { ttiWs 
> 11 }
>
> where ttiWs is "1.3.6.1.4.1.13448.3.1".  AgenPro v1.8.6 created the 
> MibGroup constructor like this:
>
> ttiwsnotificationmib::ttiwsnotificationmib():
>   MibGroup("1.3.6.1.4.1.13448.3.1.11", "ttiWsNotification")
> {
> ...
> }
>
> AgenPro v2.0.6a does it like this:
>
> ttiwsnotificationmib::ttiwsnotificationmib():
>   MibGroup("1.3.6.1.4.1.13448.3.1", "ttiwsnotificationmib")
> {
> ...
> }
>
> Shouldnt the OID end in .11 as before?  Also, it would be nice if the 
> persistent name stayed the same.  Is there a reason for the switch?  
> While I'm here, has the persistence data file format changed any since 
> agent++v3.5.3a?  I would like to be able to build an agent with the 
> new agent++ and read old persistence files.  On the other hand, any 
> fixes or improvements are welcome.
>
> Regards,
> Dave
>
> Dave Mason wrote:
>
>> Hi,
>> I'm comparing the output of AgenPro v2 with v1.8.6 and noticed this 
>> difference.  I have a MIB object that is a 6 byte hex value, used for 
>> IP address and port.  The MIB definition looks like this:
>>
>>   ipAddrPort OBJECT-TYPE
>>      SYNTAX      OCTET STRING (SIZE (6))
>>      MAX-ACCESS  read-write
>>      STATUS      current
>>      DESCRIPTION
>>         ""
>>      DEFVAL { '7f00000100a2'H }
>>      ::= { configObjects 1 }
>>
>> AgenPro v1.8.6 generated this constructor:
>>
>> ipAddrPort::ipAddrPort():
>>   MibLeaf(oidIpAddrPort, READWRITE, new OctetStr((unsigned 
>> char*)"\x7f\x00\x00\x01\x00\xa2", 6ul), VMODE_DEFAULT)
>> {
>> ...
>> }
>>
>> AgenPro v2.0.6 does this:
>>
>> ipAddrPort::ipAddrPort():
>>    MibLeaf(oidIpAddrPort, READWRITE, new 
>> OctetStr("\x7f\x00\x00\x01\x00\xa2"), VMODE_DEFAULT){
>> ...
>> }
>>
>> If we dont't have the second 6ul size argument, won't the OctetStr 
>> constructor assume that the first \x00 is an end of string?
>>
>> Regards,
>> Dave
>>
>>
>> _______________________________________________
>> AGENTPP mailing list
>> AGENTPP at agentpp.org
>> http://agentpp.org/mailman/listinfo/agentpp
>>
>>
>






More information about the AGENTPP mailing list