comm_point_delete(c);
return NULL;
}
+ c->event_added = 1;
return c;
}
comm_point_delete(c);
return NULL;
}
+ c->event_added = 1;
return c;
}
comm_point_delete(c);
return NULL;
}
+ c->event_added = 1;
/* now prealloc the handlers */
for(i=0; i<num; i++) {
if(port_type == listen_type_tcp ||
free(c);
return NULL;
}
+ c->event_added = 1;
return c;
}
free(c);
return NULL;
}
+ c->event_added = 1;
return c;
}
return;
if(c->fd != -1) {
verbose(5, "comm_point_close of %d: event_del", c->fd);
- if(ub_event_del(c->ev->ev) != 0) {
- log_err("could not event_del on close");
+ if(c->event_added) {
+ if(ub_event_del(c->ev->ev) != 0) {
+ log_err("could not event_del on close");
+ }
+ c->event_added = 0;
}
}
tcl_close_connection(c->tcl_addr);
comm_point_stop_listening(struct comm_point* c)
{
verbose(VERB_ALGO, "comm point stop listening %d", c->fd);
- if(ub_event_del(c->ev->ev) != 0) {
- log_err("event_del error to stoplisten");
+ if(c->event_added) {
+ if(ub_event_del(c->ev->ev) != 0) {
+ log_err("event_del error to stoplisten");
+ }
+ c->event_added = 0;
}
}
/* no use to start listening no free slots. */
return;
}
+ if(c->event_added) {
+ if(ub_event_del(c->ev->ev) != 0) {
+ log_err("event_del error to startlisten");
+ }
+ c->event_added = 0;
+ }
if(msec != -1 && msec != 0) {
if(!c->timeout) {
c->timeout = (struct timeval*)malloc(sizeof(
if(ub_event_add(c->ev->ev, msec==0?NULL:c->timeout) != 0) {
log_err("event_add failed. in cpsl.");
}
+ c->event_added = 1;
}
void comm_point_listen_for_rw(struct comm_point* c, int rd, int wr)
{
verbose(VERB_ALGO, "comm point listen_for_rw %d %d", c->fd, wr);
- if(ub_event_del(c->ev->ev) != 0) {
- log_err("event_del error to cplf");
+ if(c->event_added) {
+ if(ub_event_del(c->ev->ev) != 0) {
+ log_err("event_del error to cplf");
+ }
+ c->event_added = 0;
}
ub_event_del_bits(c->ev->ev, UB_EV_READ|UB_EV_WRITE);
if(rd) ub_event_add_bits(c->ev->ev, UB_EV_READ);
if(ub_event_add(c->ev->ev, c->timeout) != 0) {
log_err("event_add failed. in cplf.");
}
+ c->event_added = 1;
}
size_t comm_point_get_mem(struct comm_point* c)