- if (!SILC_IS_SOCKET_STREAM(socket_stream))
- return FALSE;
-
- silc_schedule_unset_listen_fd(socket_stream->schedule, socket_stream->sock);
- silc_net_close_connection(socket_stream->sock);
-
- return TRUE;
-}
-
-/* Destroys the stream */
-
-void silc_socket_stream_destroy(SilcStream stream)
-{
- SilcSocketStream socket_stream = stream;
-
- if (!SILC_IS_SOCKET_STREAM(socket_stream))
- return;
-
- silc_socket_stream_close(socket_stream);
- silc_free(socket_stream->ip);
- silc_free(socket_stream->hostname);
-
- if (socket_stream->qos) {
- silc_schedule_task_del_by_context(socket_stream->schedule,
- socket_stream->qos);
- if (socket_stream->qos->buffer) {
- memset(socket_stream->qos->buffer, 0,
- socket_stream->qos->read_limit_bytes);
- silc_free(socket_stream->qos->buffer);
- }
- silc_free(socket_stream->qos);
- }
-
- silc_free(socket_stream);
-}
-
-/* Sets stream notification callback for the stream */
-
-void silc_socket_stream_notifier(SilcStream stream,
- SilcStreamNotifier callback,
- void *context)
-{
- SilcSocketStream socket_stream = stream;
-
- if (!SILC_IS_SOCKET_STREAM(socket_stream))
- return;
-
- SILC_LOG_DEBUG(("Setting stream notifier callback"));