-#include <aim.h>
+#include <faim/aim.h>
struct aim_tlvlist_t *aim_readtlvchain(u_char *buf, int maxlen)
{
cur = (struct aim_tlvlist_t *)malloc(sizeof(struct aim_tlvlist_t));
memset(cur, 0x00, sizeof(struct aim_tlvlist_t));
- cur->tlv = aim_createtlv();
+ cur->tlv = aim_createtlv();
cur->tlv->type = type;
cur->tlv->length = length;
cur->tlv->value = (u_char *)malloc(length*sizeof(u_char));
curbyte += aimutil_put16(buf+curbyte, (u_short)(v&0xffff));
return curbyte;
}
+
+int aim_puttlv_32(u_char *buf, u_short t, u_long v)
+{
+ int curbyte=0;
+ curbyte += aimutil_put16(buf+curbyte, (u_short)(t&0xffff));
+ curbyte += aimutil_put16(buf+curbyte, (u_short)0x0004);
+ curbyte += aimutil_put32(buf+curbyte, (u_long)(v&0xffffffff));
+ return curbyte;
+}
+
+int aim_puttlv_str(u_char *buf, u_short t, u_short l, u_char *v)
+{
+ int curbyte;
+
+ curbyte = 0;
+ curbyte += aimutil_put16(buf+curbyte, (u_short)(t&0xffff));
+ curbyte += aimutil_put16(buf+curbyte, (u_short)(l&0xffff));
+ if (v)
+ memcpy(buf+curbyte, v, l);
+ curbyte += l;
+ return curbyte;
+}