Flipped msg sublelem 5 and 4 when sending AC descriptor.

Cisco does not know about hardware version msg subelement (4) in
AC Descriptor message???
Sending software version sub element(5) first brings Cisco to
accept the whole message.

FossilOrigin-Name: af46e72eea639db67c970ae624d6f3d1f2d957da5aa57ff9d6fa39e1a1b914e8
This commit is contained in:
user@SRH-Linux-01.(none) 2014-07-28 16:19:31 +00:00
parent 4a7987eaa6
commit 01d4cdafb7
1 changed files with 10 additions and 9 deletions

View File

@ -31,24 +31,25 @@ void cwmsg_addelem_ac_descriptor(struct cwmsg *msg,struct ac_info * acinfo)
int len = 12;
int sublen;
/* hardware version subelement */
*((uint32_t*)(acd+len))=0;
len+=4;
sublen=strlen(acinfo->hardware_version);
*((uint32_t*)(acd+len))=htonl((4<<16)|sublen);
len+=4;
memcpy(acd+len,acinfo->hardware_version,sublen);
len+=sublen;
/* software version subelement */
*((uint32_t*)(acd+len))=0;
len+=4;
sublen=strlen(acinfo->software_version);
sublen=strlen((const char*)acinfo->software_version);
*((uint32_t*)(acd+len))=htonl((5<<16)|sublen);
len+=4;
memcpy(acd+len,acinfo->software_version,sublen);
len+=sublen;
/* hardware version subelement */
*((uint32_t*)(acd+len))=0;
len+=4;
sublen=strlen((const char*)acinfo->hardware_version);
*((uint32_t*)(acd+len))=htonl((4<<16)|sublen);
len+=4;
memcpy(acd+len,acinfo->hardware_version,sublen);
len+=sublen;
cwmsg_addelem(msg,CWMSGELEM_AC_DESCRIPTOR,acd,len);