X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcsockconn.c;h=9b44b7ed357ae1af084525d0443faba308996fe4;hp=4a57a343c5c4b6cb74afabefafbfdf08af7be2c1;hb=8543455245d62550fbb73be3e609286f403a3d75;hpb=1638e2b425b0b444ff0c65e9709e967c1f93088b diff --git a/lib/silcutil/silcsockconn.c b/lib/silcutil/silcsockconn.c index 4a57a343..9b44b7ed 100644 --- a/lib/silcutil/silcsockconn.c +++ b/lib/silcutil/silcsockconn.c @@ -169,6 +169,19 @@ void silc_socket_set_qos(SilcSocketConnection sock, SilcUInt32 limit_usec, SilcSchedule schedule) { + if (!sock) + return; + + if (sock->qos && !read_rate && !read_limit_bytes && + !limit_sec && !limit_usec && !schedule) { + silc_schedule_task_del_by_context(sock->qos->schedule, sock->qos); + silc_free(sock->qos); + sock->qos = NULL; + return; + } + if (!schedule) + return; + if (!sock->qos) { sock->qos = silc_calloc(1, sizeof(*sock->qos)); if (!sock->qos)