X-Git-Url: http://andersk.mit.edu/gitweb/libfaim.git/blobdiff_plain/54d280df8f543fee760303c72f429c9c4b4dac78..53c935f8f1f4b5b669ab22169e80a70be68f2ed9:/aim_rxqueue.c diff --git a/aim_rxqueue.c b/aim_rxqueue.c index c625bc2..bbdb207 100644 --- a/aim_rxqueue.c +++ b/aim_rxqueue.c @@ -57,9 +57,15 @@ faim_export int aim_get_command(struct aim_session_t *sess, struct aim_conn_t *c if (!sess || !conn) return 0; + if (conn->fd == -1) + return -1; /* its a aim_conn_close()'d connection */ + if (conn->fd < 3) /* can happen when people abuse the interface */ return 0; + if (conn->status & AIM_CONN_STATUS_INPROGRESS) + return aim_conn_completeconnect(sess, conn); + /* * Rendezvous (client-client) connections do not speak * FLAP, so this function will break on them.