aboutsummaryrefslogtreecommitdiffstats
path: root/query.c
diff options
context:
space:
mode:
Diffstat (limited to 'query.c')
-rw-r--r--query.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/query.c b/query.c
index 99be2bee..d167abe8 100644
--- a/query.c
+++ b/query.c
@@ -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;