SilcFDStream fd_stream = stream;
int len = 0;
- if (!SILC_IS_FD_STREAM(fd_stream))
- return -2;
if (!fd_stream->notifier)
return -2;
SilcFDStream fd_stream = stream;
int ret;
- if (!SILC_IS_FD_STREAM(fd_stream))
- return -2;
if (!fd_stream->notifier)
return -2;
{
SilcFDStream fd_stream = stream;
- if (!SILC_IS_FD_STREAM(fd_stream))
- return FALSE;
-
if (fd_stream->fd1 > 0) {
silc_file_close(fd_stream->fd1);
silc_schedule_unset_listen_fd(fd_stream->schedule, fd_stream->fd1);
+ silc_schedule_task_del_by_fd(fd_stream->schedule, fd_stream->fd1);
}
if (fd_stream->fd2 > 0 && fd_stream->fd2 != fd_stream->fd1) {
silc_file_close(fd_stream->fd2);
silc_schedule_unset_listen_fd(fd_stream->schedule, fd_stream->fd2);
+ silc_schedule_task_del_by_fd(fd_stream->schedule, fd_stream->fd2);
}
return TRUE;
void silc_fd_stream_destroy(SilcStream stream)
{
- SilcFDStream fd_stream = stream;
-
- if (!SILC_IS_FD_STREAM(fd_stream))
- return;
-
silc_fd_stream_close(stream);
- silc_schedule_task_del_by_fd(fd_stream->schedule, fd_stream->fd1);
- silc_schedule_task_del_by_fd(fd_stream->schedule, fd_stream->fd2);
silc_free(stream);
}
/* Sets stream notification callback for the stream */
-void silc_fd_stream_notifier(SilcStream stream,
- SilcSchedule schedule,
- SilcStreamNotifier callback,
- void *context)
+SilcBool silc_fd_stream_notifier(SilcStream stream,
+ SilcSchedule schedule,
+ SilcStreamNotifier callback,
+ void *context)
{
SilcFDStream fd_stream = stream;
- if (!SILC_IS_FD_STREAM(fd_stream))
- return;
-
SILC_LOG_DEBUG(("Setting stream notifier callback"));
fd_stream->notifier = callback;
} else {
silc_schedule_unset_listen_fd(fd_stream->schedule, fd_stream->fd1);
silc_schedule_unset_listen_fd(fd_stream->schedule, fd_stream->fd2);
+ silc_schedule_task_del_by_fd(fd_stream->schedule, fd_stream->fd1);
+ silc_schedule_task_del_by_fd(fd_stream->schedule, fd_stream->fd2);
}
+
+ return TRUE;
}
/* Return schedule */
SilcSchedule silc_fd_stream_get_schedule(SilcStream stream)
{
SilcFDStream fd_stream = stream;
-
- if (!SILC_IS_FD_STREAM(fd_stream))
- return NULL;
-
return fd_stream->schedule;
}