]> andersk Git - libfaim.git/blobdiff - aim_tlv.c
Fixed yet another bug.
[libfaim.git] / aim_tlv.c
index a8cf05b1478ba9e74bd18ed60fa19ada7cd52c91..d03f2f92cfdb41d40ea49c8c389e9e31ec10d3af 100644 (file)
--- a/aim_tlv.c
+++ b/aim_tlv.c
@@ -1,4 +1,4 @@
-#include <aim.h>
+#include <faim/aim.h>
 
 struct aim_tlvlist_t *aim_readtlvchain(u_char *buf, int maxlen)
 {
@@ -31,7 +31,7 @@ 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));
@@ -188,3 +188,25 @@ int aim_puttlv_16(u_char *buf, u_short t, u_short v)
   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;
+}
This page took 0.032372 seconds and 4 git commands to generate.