- SilcSocketConnection sock = context;
- sock->qos->applied = TRUE;
- silc_schedule_set_listen_fd(sock->qos->schedule, sock->sock,
- (SILC_TASK_READ | SILC_TASK_WRITE), TRUE);
- sock->qos->applied = FALSE;
+ SilcSocketConnectionQos qos = context;
+ SilcSocketConnection sock = qos->sock;
+ qos->applied = TRUE;
+ if (sock->users > 1)
+ silc_schedule_set_listen_fd(qos->schedule, sock->sock,
+ (SILC_TASK_READ | SILC_TASK_WRITE), TRUE);
+ else
+ silc_schedule_unset_listen_fd(qos->schedule, sock->sock);
+ qos->applied = FALSE;