Mercurial > pidgin
comparison libfaim/aim_txqueue.c @ 840:595ac7759563
[gaim-migrate @ 850]
lots of (mostly useless for us) libfaim changes. should help portability, but it was always portable between unices.... stupid win32ers.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Mon, 04 Sep 2000 23:37:32 +0000 |
parents | e4c34ca88d9b |
children | e1da6a6ec42b |
comparison
equal
deleted
inserted
replaced
839:8f66e00af045 | 840:595ac7759563 |
---|---|
17 * | 17 * |
18 * framing = AIM_FRAMETYPE_OFT/OSCAR | 18 * framing = AIM_FRAMETYPE_OFT/OSCAR |
19 * chan = channel for OSCAR, hdrtype for OFT | 19 * chan = channel for OSCAR, hdrtype for OFT |
20 * | 20 * |
21 */ | 21 */ |
22 struct command_tx_struct *aim_tx_new(unsigned short framing, int chan, struct aim_conn_t *conn, int datalen) | 22 faim_internal struct command_tx_struct *aim_tx_new(unsigned short framing, int chan, struct aim_conn_t *conn, int datalen) |
23 { | 23 { |
24 struct command_tx_struct *new; | 24 struct command_tx_struct *new; |
25 | 25 |
26 if (!conn) { | 26 if (!conn) { |
27 printf("aim_tx_new: ERROR: no connection specified\n"); | 27 printf("aim_tx_new: ERROR: no connection specified\n"); |
68 * | 68 * |
69 * Note that this is only used when doing queue-based transmitting; | 69 * Note that this is only used when doing queue-based transmitting; |
70 * that is, when sess->tx_enqueue is set to &aim_tx_enqueue__queuebased. | 70 * that is, when sess->tx_enqueue is set to &aim_tx_enqueue__queuebased. |
71 * | 71 * |
72 */ | 72 */ |
73 int aim_tx_enqueue__queuebased(struct aim_session_t *sess, | 73 faim_internal int aim_tx_enqueue__queuebased(struct aim_session_t *sess, |
74 struct command_tx_struct *newpacket) | 74 struct command_tx_struct *newpacket) |
75 { | 75 { |
76 struct command_tx_struct *cur; | 76 struct command_tx_struct *cur; |
77 | 77 |
78 if (newpacket->conn == NULL) { | 78 if (newpacket->conn == NULL) { |
79 faimdprintf(1, "aim_tx_enqueue: WARNING: enqueueing packet with no connecetion\n"); | 79 faimdprintf(1, "aim_tx_enqueue: WARNING: enqueueing packet with no connecetion\n"); |
120 * Basically the same as its __queuebased couterpart, however | 120 * Basically the same as its __queuebased couterpart, however |
121 * instead of doing a list append, it just calls aim_tx_sendframe() | 121 * instead of doing a list append, it just calls aim_tx_sendframe() |
122 * right here. | 122 * right here. |
123 * | 123 * |
124 */ | 124 */ |
125 int aim_tx_enqueue__immediate(struct aim_session_t *sess, struct command_tx_struct *newpacket) | 125 faim_internal int aim_tx_enqueue__immediate(struct aim_session_t *sess, struct command_tx_struct *newpacket) |
126 { | 126 { |
127 if (newpacket->conn == NULL) { | 127 if (newpacket->conn == NULL) { |
128 faimdprintf(1, "aim_tx_enqueue: ERROR: packet has no connection\n"); | 128 faimdprintf(1, "aim_tx_enqueue: ERROR: packet has no connection\n"); |
129 if (newpacket->data) | 129 if (newpacket->data) |
130 free(newpacket->data); | 130 free(newpacket->data); |
154 * that should be stamped on the next FLAP packet sent. This is | 154 * that should be stamped on the next FLAP packet sent. This is |
155 * normally called during the final step of packet preparation | 155 * normally called during the final step of packet preparation |
156 * before enqueuement (in aim_tx_enqueue()). | 156 * before enqueuement (in aim_tx_enqueue()). |
157 * | 157 * |
158 */ | 158 */ |
159 u_int aim_get_next_txseqnum(struct aim_conn_t *conn) | 159 faim_internal unsigned int aim_get_next_txseqnum(struct aim_conn_t *conn) |
160 { | 160 { |
161 u_int ret; | 161 u_int ret; |
162 | 162 |
163 faim_mutex_lock(&conn->seqnum_lock); | 163 faim_mutex_lock(&conn->seqnum_lock); |
164 ret = ++conn->seqnum; | 164 ret = ++conn->seqnum; |
173 * records in the tx queue and their current status. Very helpful | 173 * records in the tx queue and their current status. Very helpful |
174 * if the queue isn't working quite right. | 174 * if the queue isn't working quite right. |
175 * | 175 * |
176 */ | 176 */ |
177 #if debug == 2 | 177 #if debug == 2 |
178 int aim_tx_printqueue(struct aim_session_t *sess) | 178 faim_internal int aim_tx_printqueue(struct aim_session_t *sess) |
179 { | 179 { |
180 struct command_tx_struct *cur; | 180 struct command_tx_struct *cur; |
181 | 181 |
182 faimdprintf(2, "\ncurrent aim_queue_outgoing...\n"); | 182 faimdprintf(2, "\ncurrent aim_queue_outgoing...\n"); |
183 faimdprintf(2, "\ttype seqnum len lock sent\n"); | 183 faimdprintf(2, "\ttype seqnum len lock sent\n"); |
223 * 7) Unlock the struct. | 223 * 7) Unlock the struct. |
224 * 8) Free the temp buffer | 224 * 8) Free the temp buffer |
225 * 9) Step to next struct in list and go back to 1. | 225 * 9) Step to next struct in list and go back to 1. |
226 * | 226 * |
227 */ | 227 */ |
228 int aim_tx_sendframe(struct aim_session_t *sess, struct command_tx_struct *cur) | 228 faim_internal int aim_tx_sendframe(struct aim_session_t *sess, struct command_tx_struct *cur) |
229 { | 229 { |
230 int buflen = 0; | 230 int buflen = 0; |
231 unsigned char *curPacket; | 231 unsigned char *curPacket; |
232 | 232 |
233 if (!cur) | 233 if (!cur) |
325 free(curPacket); /* free up full-packet buffer */ | 325 free(curPacket); /* free up full-packet buffer */ |
326 | 326 |
327 return 1; /* success */ | 327 return 1; /* success */ |
328 } | 328 } |
329 | 329 |
330 int aim_tx_flushqueue(struct aim_session_t *sess) | 330 faim_export int aim_tx_flushqueue(struct aim_session_t *sess) |
331 { | 331 { |
332 struct command_tx_struct *cur; | 332 struct command_tx_struct *cur; |
333 | 333 |
334 #if debug > 1 | 334 #if debug > 1 |
335 int i = 0; | 335 int i = 0; |
369 * This is responsable for removing sent commands from the transmit | 369 * This is responsable for removing sent commands from the transmit |
370 * queue. This is not a required operation, but it of course helps | 370 * queue. This is not a required operation, but it of course helps |
371 * reduce memory footprint at run time! | 371 * reduce memory footprint at run time! |
372 * | 372 * |
373 */ | 373 */ |
374 void aim_tx_purgequeue(struct aim_session_t *sess) | 374 faim_export void aim_tx_purgequeue(struct aim_session_t *sess) |
375 { | 375 { |
376 struct command_tx_struct *cur = NULL; | 376 struct command_tx_struct *cur = NULL; |
377 struct command_tx_struct *tmp; | 377 struct command_tx_struct *tmp; |
378 | 378 |
379 if (sess->queue_outgoing == NULL) | 379 if (sess->queue_outgoing == NULL) |