+/*
+ * aim_send_warning(struct aim_session_t *sess,
+ * struct aim_conn_t *conn, char *destsn, int anon)
+ * send a warning to destsn.
+ * anon is anonymous or not;
+ * AIM_WARN_ANON anonymous
+ *
+ * returns -1 on error (couldn't alloc packet), next snacid on success.
+ *
+ */
+int aim_send_warning(struct aim_session_t *sess, struct aim_conn_t *conn, char *destsn, int anon)
+{
+ struct command_tx_struct *newpacket;
+ int curbyte;
+
+ if (!(newpacket = aim_tx_new(AIM_FRAMETYPE_OSCAR, 0x0002, conn, strlen(destsn)+13)))
+ return -1;
+
+ newpacket->lock = 1;
+
+ curbyte = 0;
+ curbyte += aim_putsnac(newpacket->data+curbyte,
+ 0x0004, 0x0008, 0x0000, sess->snac_nextid);
+
+ curbyte += aimutil_put16(newpacket->data+curbyte, (anon & AIM_WARN_ANON)?1:0);
+
+ curbyte += aimutil_put8(newpacket->data+curbyte, strlen(destsn));
+
+ curbyte += aimutil_putstr(newpacket->data+curbyte, destsn, strlen(destsn));
+
+ newpacket->commandlen = curbyte;
+ newpacket->lock = 0;
+
+ aim_tx_enqueue(sess, newpacket);
+
+ return (sess->snac_nextid++);
+}
+
+
+