diff options
Diffstat (limited to 'query.c')
-rw-r--r-- | query.c | 19 |
1 files changed, 15 insertions, 4 deletions
@@ -101,6 +101,9 @@ void query_del_by_conn( irc_t *irc, struct im_connection *ic ) query_t *q, *n, *def; int count = 0; + if(!ic) + return; + q = irc->queries; def = query_default( irc ); @@ -139,13 +142,21 @@ void query_answer( irc_t *irc, query_t *q, int ans ) } if( ans ) { - imcb_log( q->ic, "Accepted: %s", q->question ); - q->yes( NULL, q->data ); + if(q->ic) + imcb_log( q->ic, "Accepted: %s", q->question ); + else + irc_usermsg( irc, "Accepted: %s", q->question ); + if(q->yes) + q->yes( q->ic ? (gpointer)q->ic : (gpointer)irc, q->data ); } else { - imcb_log( q->ic, "Rejected: %s", q->question ); - q->no( NULL, q->data ); + if(q->ic) + imcb_log( q->ic, "Rejected: %s", q->question ); + else + irc_usermsg( irc, "Rejected: %s", q->question ); + if(q->no) + q->no( q->ic ? (gpointer)q->ic : (gpointer)irc, q->data ); } q->data = NULL; |