No release numbers
------------------
+ - Tue Aug 8 04:25:35 UTC 2000
+ - Preserve subtype and priv after aim_conn_close
+
- Tue Aug 8 04:15:47 UTC 2000
- Fixed double-calling of faim_mutex_init
- conn->type preserved after aim_conn_close
return;
deadconn->fd = -1;
+ deadconn->subtype = -1;
deadconn->type = -1;
deadconn->seqnum = 0;
deadconn->lastactivity = 0;
void aim_conn_close(struct aim_conn_t *deadconn)
{
- int typesav = -1;
+ int typesav = -1, subtypesav = -1;
+ void *privsav = NULL;
faim_mutex_destroy(&deadconn->active);
faim_mutex_destroy(&deadconn->seqnum_lock);
if (deadconn->fd >= 3)
close(deadconn->fd);
- typesav = deadconn->type;
if (deadconn->handlerlist)
aim_clearhandlers(deadconn);
- if (deadconn->priv)
+
+ typesav = deadconn->type;
+ subtypesav = deadconn->subtype;
+
+ if (deadconn->priv && (deadconn->type != AIM_CONN_TYPE_RENDEZVOUS)) {
free(deadconn->priv);
-
+ deadconn->priv = NULL;
+ }
+ privsav = deadconn->priv;
+
aim_conn_init(deadconn);
deadconn->type = typesav;
+ deadconn->subtype = subtypesav;
+ deadconn->priv = privsav;
return;
}