rxcallback_t userfunc = NULL;
int ret=1;
struct aim_tlvlist_t *tlvlist;
- struct aim_tlv_t *tlv;
unsigned short maxpermits = 0, maxdenies = 0;
/*
/*
* TLV type 0x0001: Maximum number of buddies on permit list.
*/
- if ((tlv = aim_gettlv(tlvlist, 0x0001, 1))) {
- maxpermits = aimutil_get16(tlv->value);
- }
+ if (aim_gettlv(tlvlist, 0x0001, 1))
+ maxpermits = aim_gettlv16(tlvlist, 0x0001, 1);
/*
* TLV type 0x0002: Maximum number of buddies on deny list.
*
*/
- if ((tlv = aim_gettlv(tlvlist, 0x0002, 1))) {
- maxdenies = aimutil_get16(tlv->value);
- }
+ if (aim_gettlv(tlvlist, 0x0002, 1))
+ maxdenies = aim_gettlv16(tlvlist, 0x0002, 1);
- userfunc = aim_callhandler(command->conn, 0x0009, 0x0003);
- if (userfunc)
- ret = userfunc(sess, command, maxpermits, maxdenies);
+ if ((userfunc = aim_callhandler(command->conn, 0x0009, 0x0003)))
+ ret = userfunc(sess, command, maxpermits, maxdenies);
aim_freetlvchain(&tlvlist);
newpacket->lock = 1;
i = aim_putsnac(newpacket->data, 0x0001, 0x0017, 0x0000, sess->snac_nextid);
+ aim_cachesnac(sess, 0x0001, 0x0017, 0x0000, NULL, 0);
i += aimutil_put16(newpacket->data+i, 0x0001);
i += aimutil_put16(newpacket->data+i, 0x0003);
+ i += aimutil_put16(newpacket->data+i, 0x0013);
+ i += aimutil_put16(newpacket->data+i, 0x0001);
+
i += aimutil_put16(newpacket->data+i, 0x0002);
i += aimutil_put16(newpacket->data+i, 0x0001);
i += aimutil_put16(newpacket->data+i, 0x0001);
i += aimutil_put16(newpacket->data+i, 0x000b);
- i += aimutil_put16(newpacket->data+i, 0x0002);
-
- i += aimutil_put16(newpacket->data+i, 0x000c);
- i += aimutil_put16(newpacket->data+i, 0x0001);
-
- i += aimutil_put16(newpacket->data+i, 0x0013);
i += aimutil_put16(newpacket->data+i, 0x0001);
- i += aimutil_put16(newpacket->data+i, 0x0015);
+ i += aimutil_put16(newpacket->data+i, 0x000c);
i += aimutil_put16(newpacket->data+i, 0x0001);
-#if 0
- for (j = 0; j < 0x10; j++) {
- i += aimutil_put16(newpacket->data+i, j); /* family */
- i += aimutil_put16(newpacket->data+i, 0x0003); /* version */
- }
-#endif
-
newpacket->commandlen = i;
newpacket->lock = 0;
aim_tx_enqueue(sess, newpacket);
- return (sess->snac_nextid++);
+ return sess->snac_nextid;
}
newpacket->lock = 1;
aim_putsnac(newpacket->data, family, subtype, 0x0000, sess->snac_nextid);
-
+
+ aim_cachesnac(sess, family, subtype, 0x0000, NULL, 0);
+
aim_tx_enqueue(sess, newpacket);
- return (sess->snac_nextid++);
+ return sess->snac_nextid;
}
/*
newpacket->lock = 1;
aim_putsnac(newpacket->data, family, subtype, 0x0000, sess->snac_nextid);
+ aim_cachesnac(sess, family, subtype, 0x0000, NULL, 0);
/* copy in data */
newlong = htonl(*longdata);
memcpy(&(newpacket->data[10]), &newlong, sizeof(u_long));
aim_tx_enqueue(sess, newpacket);
- return (sess->snac_nextid++);
+ return sess->snac_nextid;
}
faim_internal unsigned long aim_genericreq_s(struct aim_session_t *sess,
newpacket->lock = 1;
aim_putsnac(newpacket->data, family, subtype, 0x0000, sess->snac_nextid);
+ aim_cachesnac(sess, family, subtype, 0x0000, NULL, 0);
/* copy in data */
newshort = htons(*shortdata);
memcpy(&(newpacket->data[10]), &newshort, sizeof(u_short));
aim_tx_enqueue(sess, newpacket);
- return (sess->snac_nextid++);
+ return sess->snac_nextid;
}
/*
newpacket->lock = 1;
i = aim_putsnac(newpacket->data, 0x0004, 0x0002, 0x0000, sess->snac_nextid);
+ aim_cachesnac(sess, 0x0004, 0x0002, 0x0000, NULL, 0);
+
i += aimutil_put16(newpacket->data+i, 0x0000);
i += aimutil_put16(newpacket->data+i, 0x0000);
i += aimutil_put16(newpacket->data+i, 0x0003);
aim_tx_enqueue(sess, newpacket);
- return (sess->snac_nextid);
+ return sess->snac_nextid;
}
/*
return(sess->snac_nextid);
}
+
+faim_export unsigned long aim_icq_setstatus(struct aim_session_t *sess,
+ struct aim_conn_t *conn,
+ unsigned long status)
+{
+ struct command_tx_struct *newpacket;
+ int i;
+ unsigned long data;
+
+ data = 0x00030000 | status; /* yay for error checking ;^) */
+
+ if(!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0002, conn, 10 + 4)))
+ return -1;
+
+ newpacket->lock = 1;
+
+ i = aim_putsnac(newpacket->data, 0x0001, 0x001e, 0x0000, 0x0000001e);
+ i += aim_puttlv_32(newpacket->data+i, 0x0006, data);
+
+ newpacket->commandlen = i;
+ newpacket->lock = 0;
+
+ aim_tx_enqueue(sess, newpacket);
+
+ return(sess->snac_nextid);
+}