diff src/protocols/oscar/misc.c @ 2113:9f83b7ef1fdc

[gaim-migrate @ 2123] Make warning errors work right. Now shows name that failed instead of "(null)". committer: Tailor Script <tailor@pidgin.im>
author Adam Fritzler <mid@auk.cx>
date Fri, 03 Aug 2001 00:39:48 +0000
parents 424a40f12a6c
children edf8c5a70e5b
line wrap: on
line diff
--- a/src/protocols/oscar/misc.c	Thu Aug 02 20:52:04 2001 +0000
+++ b/src/protocols/oscar/misc.c	Fri Aug 03 00:39:48 2001 +0000
@@ -495,41 +495,45 @@
 }
 
 /*
- * 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
+ * Send a warning to destsn.
+ * 
+ * Flags:
+ *  AIM_WARN_ANON  Send as an anonymous (doesn't count as much)
  *
- * returns -1 on error (couldn't alloc packet), next snacid on success.
+ * returns -1 on error (couldn't alloc packet), 0 on success. 
  *
  */
-faim_export int aim_send_warning(struct aim_session_t *sess, struct aim_conn_t *conn, char *destsn, int anon)
+faim_export int aim_send_warning(struct aim_session_t *sess, struct aim_conn_t *conn, const char *destsn, unsigned long flags)
 {
-  struct command_tx_struct *newpacket;
-  int curbyte;
+	struct command_tx_struct *newpacket;
+	int curbyte;
+	unsigned short outflags = 0x0000;
 
-  if (!(newpacket = aim_tx_new(sess, conn, AIM_FRAMETYPE_OSCAR, 0x0002, strlen(destsn)+13)))
-    return -1;
+	if (!(newpacket = aim_tx_new(sess, conn, AIM_FRAMETYPE_OSCAR, 0x0002, 
+					strlen(destsn)+13)))
+		return -1;
 
-  newpacket->lock = 1;
+	newpacket->lock = 1;
+
+	curbyte  = 0;
+	curbyte += aim_putsnac(newpacket->data+curbyte,
+			0x0004, 0x0008, 0x0000, sess->snac_nextid);
 
-  curbyte  = 0;
-  curbyte += aim_putsnac(newpacket->data+curbyte,
-                        0x0004, 0x0008, 0x0000, sess->snac_nextid);
+	if (flags & AIM_WARN_ANON)
+		outflags |= 0x0001;
 
-  curbyte += aimutil_put16(newpacket->data+curbyte, (anon & AIM_WARN_ANON)?1:0);
-
-  curbyte += aimutil_put8(newpacket->data+curbyte, strlen(destsn));
+	curbyte += aimutil_put16(newpacket->data+curbyte, outflags); 
+	curbyte += aimutil_put8(newpacket->data+curbyte, strlen(destsn));
+	curbyte += aimutil_putstr(newpacket->data+curbyte, destsn, strlen(destsn));
 
-  curbyte += aimutil_putstr(newpacket->data+curbyte, destsn, strlen(destsn));
+	newpacket->commandlen = curbyte;
+	newpacket->lock = 0;
 
-  newpacket->commandlen = curbyte;
-  newpacket->lock = 0;
+	aim_tx_enqueue(sess, newpacket);
 
-  aim_tx_enqueue(sess, newpacket);
+	aim_cachesnac(sess, 0x0004, 0x0008, 0x0000, destsn, strlen(destsn)+1);
 
-  return (sess->snac_nextid++);
+	return 0;
 }
 
 /*