--- a/src/irc_conn.c Thu Mar 12 23:54:03 2009 +0200
+++ b/src/irc_conn.c Fri Mar 13 00:01:12 2009 +0200
@@ -138,6 +138,11 @@
// EOF after quit?
if (ERROR_CODE(err) == ERR_READ_EOF && conn->quitting) {
+ // udpate states
+ conn->registered = false;
+ conn->quitting = false;
+ conn->quit = true;
+
// callback
if (conn->callbacks.on_quit)
conn->callbacks.on_quit(conn, conn->cb_arg);
@@ -306,7 +311,7 @@
};
// state check
- if (conn->quitting)
+ if (conn->quitting || conn->quit)
return ERR_IRC_CONN_QUIT_STATE;
// try and send