]> andersk Git - libfaim.git/blobdiff - src/login.c
- Thu Mar 29 14:45:22 CST 2001 (jbm)
[libfaim.git] / src / login.c
index 1fd031ab1c9ad2213c9d6f9fee1753f1a81b4de3..bb26feddbd876f9ef59405fb303b42ee4286a9aa 100644 (file)
@@ -715,14 +715,31 @@ static int memrequest(struct aim_session_t *sess, aim_module_t *mod, struct comm
 {
   rxcallback_t userfunc;
   unsigned long offset, len;
+  struct aim_tlvlist_t *tlvlist;
+  struct aim_tlv_t *tlv;
+  char *modname;
 
   offset = aimutil_get32(data);
   len = aimutil_get32(data+4);
 
-  faimdprintf(sess, 1, "data at 0x%08lx (%d bytes) requested\n", offset, len);
+  if(rx->commandlen > 0x12) { /* XXX right len? */
+    tlvlist = aim_readtlvchain(data+8, datalen-8);
+
+    if((tlv = aim_gettlv(tlvlist, 0x0001, 1))) {
+      modname = malloc(tlv->length + 5);
+      memset(modname, 0, tlv->length + 5);
+      memcpy(modname, tlv->value, tlv->length);
+      strncat(modname, ".ocm", tlv->length + 5 - strlen(modname));
+    } else {
+      modname = "aim.exe";
+    }
+  }  else
+    modname = "aim.exe";
+    
+  faimdprintf(sess, 1, "data at 0x%08lx (%d bytes) of %s requested\n", offset, len, modname);
 
   if ((userfunc = aim_callhandler(sess, rx->conn, snac->family, snac->subtype)))
-    return userfunc(sess, rx, offset, len);
+    return userfunc(sess, rx, offset, len, modname);
 
   return 0;
 }
This page took 0.809911 seconds and 4 git commands to generate.