- if ( (userfunc = aim_callhandler(sess, conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMDISCONNECT)) )
- userfunc(sess, &fr, intdata->sn);
+ if (conn->type != AIM_CONN_TYPE_RENDEZVOUS)
+ return;
+
+ if (conn->subtype == AIM_CONN_SUBTYPE_OFT_SENDFILE)
+ connclose_sendfile(sess, conn);
+ else if (conn->subtype == AIM_CONN_SUBTYPE_OFT_GETFILE)
+ connclose_getfile(sess, conn);
+ else if (conn->subtype == AIM_CONN_SUBTYPE_OFT_DIRECTIM)
+ connclose_directim(sess, conn);
+
+ return;
+}
+
+faim_internal void aim_conn_kill_rend(aim_session_t *sess, aim_conn_t *conn)
+{
+
+ if (conn->type != AIM_CONN_TYPE_RENDEZVOUS)
+ return;
+
+ if (conn->subtype == AIM_CONN_SUBTYPE_OFT_SENDFILE)
+ connkill_sendfile(sess, conn);
+ else if (conn->subtype == AIM_CONN_SUBTYPE_OFT_GETFILE)
+ connkill_getfile(sess, conn);
+ else if (conn->subtype == AIM_CONN_SUBTYPE_OFT_DIRECTIM)
+ connkill_directim(sess, conn);