]> andersk Git - libfaim.git/blobdiff - src/txqueue.c
- Sun Mar 11 05:51:45 UTC 2001 (jbm)
[libfaim.git] / src / txqueue.c
index 2a1a92af88c49713158d6f4e0c5dd0cd0dd0e9e8..49a669f870a0f3fec0c9a62a084f7cde6d59aeee 100644 (file)
  * chan = channel for OSCAR, hdrtype for OFT
  *
  */
-faim_internal struct command_tx_struct *aim_tx_new(struct aim_session_t *sess, struct aim_conn_t *conn, unsigned char framing, int chan, int datalen)
+faim_internal struct command_tx_struct *aim_tx_new(struct aim_session_t *sess, 
+                                                  struct aim_conn_t *conn, 
+                                                  unsigned char framing, 
+                                                  int chan, 
+                                                  int datalen)
 {
   struct command_tx_struct *newtx;
 
@@ -158,7 +162,9 @@ static int aim_tx_enqueue__immediate(struct aim_session_t *sess, struct command_
   return 0;
 }
 
-faim_export int aim_tx_setenqueue(struct aim_session_t *sess, int what,  int (*func)(struct aim_session_t *, struct command_tx_struct *))
+faim_export int aim_tx_setenqueue(struct aim_session_t *sess, 
+                                 int what,  
+                                 int (*func)(struct aim_session_t *, struct command_tx_struct *))
 {
   if (!sess)
     return -1;
@@ -429,3 +435,31 @@ faim_export void aim_tx_purgequeue(struct aim_session_t *sess)
   }
   return;
 }
+
+/**
+ * aim_tx_cleanqueue - get rid of packets waiting for tx on a dying conn
+ * @sess: session
+ * @conn: connection that's dying
+ *
+ * for now this simply marks all packets as sent and lets them
+ * disappear without warning.
+ *
+ * doesn't respect command_tx_struct locks.
+ */
+
+faim_export int aim_tx_cleanqueue(struct aim_session_t *sess, struct aim_conn_t *conn)
+{
+  struct command_tx_struct *cur = NULL;
+
+  if(!sess || !conn)
+    return -1;
+
+  /* we don't respect locks here */
+  for(cur = sess->queue_outgoing; cur; cur = cur->next)
+    if(cur->conn == conn)
+      cur->sent = 1;
+  
+  return 0;
+}
+    
+      
This page took 0.06726 seconds and 4 git commands to generate.