From: Pekka Riikonen Date: Mon, 28 Nov 2005 17:18:31 +0000 (+0000) Subject: Added silc_fd_stream_file. X-Git-Tag: 1.2.beta1~766 X-Git-Url: http://git.silcnet.org/gitweb/?p=crypto.git;a=commitdiff_plain;h=cb7c2ffa5dbe4332ca22ddb46b0517aadbf49714 Added silc_fd_stream_file. --- diff --git a/CHANGES b/CHANGES index 54b60f2b..72b56db3 100644 --- a/CHANGES +++ b/CHANGES @@ -3,6 +3,8 @@ Mon Nov 28 17:06:54 EET 2005 Pekka Riikonen * Added silc_file_set_nonblock. Affected file is lib/silcutil/silcfileutil.h. + * Added silc_fd_stream_file to lib/silcutil/silcfdstream.[ch]. + Sat Nov 26 16:13:40 EET 2005 Pekka Riikonen * FSM based implementation of SILC SKE. Simpler interface also. diff --git a/lib/silcutil/silcfdstream.c b/lib/silcutil/silcfdstream.c index c47aae8e..d707e59a 100644 --- a/lib/silcutil/silcfdstream.c +++ b/lib/silcutil/silcfdstream.c @@ -103,6 +103,31 @@ SilcStream silc_fd_stream_create2(int read_fd, int write_fd, return stream; } +/* Create by opening file */ + +SilcStream silc_fd_stream_file(const char *filename, + SilcBool reading, SilcBool writing, + SilcSchedule schedule) +{ + int fd, flags = 0; + + if (!filename) + return NULL; + + if (reading) + flags |= O_RDONLY; + if (writing) + flags |= O_WRONLY; + if (reading && writing) + flags |= O_RDWR; + + fd = silc_file_open(filename, flags); + if (fd < 0) + return NULL; + + return silc_fd_stream_create(fd, schedule); +} + /* Return fds */ SilcBool silc_fd_stream_get_info(SilcStream stream, int *read_fd, int *write_fd) diff --git a/lib/silcutil/silcfdstream.h b/lib/silcutil/silcfdstream.h index 9904fcac..fc1a4c8f 100644 --- a/lib/silcutil/silcfdstream.h +++ b/lib/silcutil/silcfdstream.h @@ -67,6 +67,24 @@ SilcStream silc_fd_stream_create(int fd, SilcSchedule schedule); SilcStream silc_fd_stream_create2(int read_fd, int write_fd, SilcSchedule schedule); +/****f* silcutil/SilcFDStreamAPI/silc_fd_stream_file + * + * SYNOPSIS + * + * SilcStream silc_fd_stream_file(const char *filename, SilcBool reading, + * SilcBool writing, SilcSchedule schedule); + * + * DESCRIPTION + * + * Same as silc_fd_stream_create but creates the stream by opening the + * file indicated by `filename'. If the `reading' is TRUE the file is + * opened for reading. If the `writing' is TRUE the file is opened + * for writing. + * + ***/ +SilcStream silc_fd_stream_file(const char *filename, SilcBool reading, + SilcBool writing, SilcSchedule schedule); + /****f* silcutil/SilcFDStreamAPI/silc_fd_stream_get_info * * SYNOPSIS diff --git a/lib/silcutil/silcfileutil.h b/lib/silcutil/silcfileutil.h index 3437870a..80e9d99a 100644 --- a/lib/silcutil/silcfileutil.h +++ b/lib/silcutil/silcfileutil.h @@ -100,7 +100,7 @@ int silc_file_write(int fd, const char *buffer, SilcUInt32 len); ***/ int silc_file_close(int fd); -/****f* silcutil/SilcNetAPI/silc_file_set_nonblock +/****f* silcutil/SilcFileUtilAPI/silc_file_set_nonblock * * SYNOPSIS * diff --git a/lib/silcutil/silcmutex.h b/lib/silcutil/silcmutex.h index c92a23c5..52407855 100644 --- a/lib/silcutil/silcmutex.h +++ b/lib/silcutil/silcmutex.h @@ -45,23 +45,6 @@ ***/ typedef struct SilcMutexStruct *SilcMutex; -/****d* silcutil/SilcMutexAPI/SILC_MUTEX_DEFINE - * - * NAME - * - * #define SILC_MUTEX_DEFINE(name) ... - * - * DESCRIPTION - * - * This macro is used to define new mutex. Use this macro in an - * environment that can be compiled with or without the SILC Mutex - * API. This is equivalent to defining SilcMutex `name'; directly. - * - * SOURCE - */ -#define SILC_MUTEX_DEFINE(name) SilcMutex name -/***/ - /****f* silcutil/SilcMutexAPI/silc_mutex_alloc * * SYNOPSIS