if (objt_server(s->target))
objt_server(s->target)->counters.bytes_in += bytes;
- if (s->listener->counters)
+ if (s->listener && s->listener->counters)
s->listener->counters->bytes_in += bytes;
for (i = 0; i < MAX_SESS_STKCTR; i++) {
if (objt_server(s->target))
objt_server(s->target)->counters.bytes_out += bytes;
- if (s->listener->counters)
+ if (s->listener && s->listener->counters)
s->listener->counters->bytes_out += bytes;
for (i = 0; i < MAX_SESS_STKCTR; i++) {
s->fe->feconn--;
if (s->flags & SN_BE_ASSIGNED)
s->be->beconn--;
- if (!(s->listener->options & LI_O_UNLIMITED))
- actconn--;
jobs--;
- s->listener->nbconn--;
- if (s->listener->state == LI_FULL)
- resume_listener(s->listener);
+ if (s->listener) {
+ if (!(s->listener->options & LI_O_UNLIMITED))
+ actconn--;
+ s->listener->nbconn--;
+ if (s->listener->state == LI_FULL)
+ resume_listener(s->listener);
- /* Dequeues all of the listeners waiting for a resource */
- if (!LIST_ISEMPTY(&global_listener_queue))
- dequeue_all_listeners(&global_listener_queue);
+ /* Dequeues all of the listeners waiting for a resource */
+ if (!LIST_ISEMPTY(&global_listener_queue))
+ dequeue_all_listeners(&global_listener_queue);
- if (!LIST_ISEMPTY(&s->fe->listener_queue) &&
- (!s->fe->fe_sps_lim || freq_ctr_remain(&s->fe->fe_sess_per_sec, s->fe->fe_sps_lim, 0) > 0))
- dequeue_all_listeners(&s->fe->listener_queue);
+ if (!LIST_ISEMPTY(&s->fe->listener_queue) &&
+ (!s->fe->fe_sps_lim || freq_ctr_remain(&s->fe->fe_sess_per_sec, s->fe->fe_sps_lim, 0) > 0))
+ dequeue_all_listeners(&s->fe->listener_queue);
+ }
if (unlikely((global.mode & MODE_DEBUG) &&
(!(global.mode & MODE_QUIET) || (global.mode & MODE_VERBOSE)))) {