diff options
| author | unknown <pesco@khjk.org> | 2013-08-02 22:55:16 +0200 | 
|---|---|---|
| committer | unknown <pesco@khjk.org> | 2013-08-02 22:55:16 +0200 | 
| commit | c347a1225f8a114ff540a38fed31c5543b4d9fcc (patch) | |
| tree | 89578d0ad20f3761ffcac5ea0cba7b6a117059cd | |
| parent | f93e01c92315427c2b8f8c7d03e0ce337e2e80b4 (diff) | |
timer cleanup and "other instance" error message
| -rw-r--r-- | otr.c | 10 | ||||
| -rw-r--r-- | otr.h | 3 | 
2 files changed, 11 insertions, 2 deletions
| @@ -270,7 +270,7 @@ gboolean otr_irc_new(irc_t *irc)  	/* regularly call otrl_message_poll */  	gint definterval = otrl_message_poll_get_default_interval(irc->otr->us); -	b_timeout_add(definterval, ev_message_poll, irc->otr); +	irc->otr->timer = b_timeout_add(definterval, ev_message_poll, irc->otr);  	return TRUE;  } @@ -278,6 +278,7 @@ gboolean otr_irc_new(irc_t *irc)  void otr_irc_free(irc_t *irc)  {  	otr_t *otr = irc->otr; +	b_event_remove(otr->timer);  	otrl_userstate_free(otr->us);  	if(otr->keygen) {  		kill(otr->keygen, SIGTERM); @@ -845,6 +846,10 @@ void op_handle_msg_event(void *opdata, OtrlMessageEvent ev, ConnContext *ctx,  		display_otr_message(opdata, ctx,  			"unreadable encrypted message received");  		break; +	case OTRL_MSGEVENT_RCVDMSG_FOR_OTHER_INSTANCE: +		display_otr_message(opdata, ctx, +			"OTR message for a different instance received"); +		break;  	case OTRL_MSGEVENT_RCVDMSG_MALFORMED:  		display_otr_message(opdata, ctx,  			"malformed OTR message received"); @@ -1354,7 +1359,8 @@ gboolean ev_message_poll(gpointer data, gint fd, b_input_condition cond)  {  	otr_t *otr = data; -	otrl_message_poll(otr->us, &otr_ops, NULL); +	if(otr && otr->us) +		otrl_message_poll(otr->us, &otr_ops, NULL);  	return TRUE;	/* cycle timer */  } @@ -65,6 +65,9 @@ typedef struct otr {  	/* keygen jobs waiting to be sent to slave */  	kg_t *todo; + +	/* event timer for otrl_message_poll */ +	gint timer;  } otr_t;  /* called from main() */ | 
