summaryrefslogtreecommitdiff
path: root/libmailutils/stream/tcp.c
diff options
context:
space:
mode:
authorSergey Poznyakoff <gray@gnu.org.ua>2010-12-06 15:01:33 +0200
committerSergey Poznyakoff <gray@gnu.org.ua>2010-12-06 15:26:42 +0200
commit1f44f1ad1f04c4d11ae4f56d2595a6126b223540 (patch)
tree71d762756ea73c596380a27f2b3302626393423b /libmailutils/stream/tcp.c
parentec3fa1b18321ac99a62a00321ad6a059b6d30a27 (diff)
downloadmailutils-1f44f1ad1f04c4d11ae4f56d2595a6126b223540.tar.gz
mailutils-1f44f1ad1f04c4d11ae4f56d2595a6126b223540.tar.bz2
Revise stream ioctl support.
The mu_stream_ioctl function gets two argument that identify the ioctl in question: "family", which identifies a family of ioctls in question, and "opcode", which indicates the requested operation within that family. * include/mailutils/stream.h: Define ioctl families and opcodes. (mu_stream_ioctl): Change signature. * include/mailutils/sys/stream.h (_mu_stream)<ctl>: Change signature. * include/mailutils/log.h (mu_severity_from_string) (mu_severity_to_string): New protos. * libmailutils/stream/stream.c (mu_stream_ioctl): Change signature. * libmailutils/filter/filter_iconv.c: Rewrite ioctl support. * libmailutils/stream/file_stream.c: Likewise. * libmailutils/stream/fltstream.c: Likewise. * libmailutils/stream/iostream.c: Likewise. * libmailutils/stream/logstream.c: Likewise. * libmailutils/stream/mapfile_stream.c: Likewise. * libmailutils/stream/memory_stream.c: Likewise. * libmailutils/stream/nullstream.c: Likewise. * libmailutils/stream/prog_stream.c: Likewise. * libmailutils/stream/rdcache_stream.c: Likewise. * libmailutils/stream/streamref.c: Likewise. * libmailutils/stream/syslogstream.c: Likewise. * libmailutils/stream/tcp.c: Likewise. * libmailutils/stream/xscript-stream.c: Likewise. * libmu_auth/tls.c: Likewise. * comsat/action.c: Change calls to mu_stream_ioctl. * imap4d/auth_gsasl.c: Likewise. * imap4d/io.c: Likewise. * imap4d/util.c: Likewise. * libmailutils/base/getpass.c: Likewise. * libmailutils/cfg/parser.y: Likewise. * libmailutils/mailbox/body.c: Likewise. * libmailutils/mime/mime.c: Likewise. * libmailutils/stdstream/dbgstream.c: Likewise. * libmailutils/stdstream/strerr.c: Likewise. * libmu_sieve/runtime.c: Likewise. * libmu_sieve/sieve.y: Likewise. * libmu_sieve/util.c: Likewise. * libproto/imap/trace.c: Likewise. * libproto/mailer/smtp_data.c: Likewise. * libproto/mailer/smtp_starttls.c: Likewise. * libproto/mailer/smtp_trace.c: Likewise. * libproto/pop/pop3_stls.c: Likewise. * libproto/pop/pop3_stream.c: Likewise. * libproto/pop/pop3_trace.c: Likewise. * maidag/lmtp.c: Likewise. * mail/source.c: Likewise. * mu/logger.c: Likewise. * pop3d/extra.c: Likewise. * pop3d/retr.c: Likewise. * TODO: Update. * doc/texinfo/nullstream.texi: Update.
Diffstat (limited to 'libmailutils/stream/tcp.c')
-rw-r--r--libmailutils/stream/tcp.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/libmailutils/stream/tcp.c b/libmailutils/stream/tcp.c
index c719be81f..c22526701 100644
--- a/libmailutils/stream/tcp.c
+++ b/libmailutils/stream/tcp.c
@@ -193,21 +193,32 @@ _tcp_open (mu_stream_t stream)
}
static int
-_tcp_ioctl (mu_stream_t stream, int code, void *ptr)
+_tcp_ioctl (mu_stream_t stream, int code, int opcode, void *ptr)
{
struct _tcp_instance *tcp = (struct _tcp_instance *)stream;
- mu_transport_t *ptrans;
switch (code)
{
- case MU_IOCTL_GET_TRANSPORT:
+ case MU_IOCTL_TRANSPORT:
if (!ptr)
return EINVAL;
- ptrans = ptr;
- ptrans[0] = (mu_transport_t) tcp->fd;
- ptrans[1] = NULL;
+ else
+ {
+ mu_transport_t *ptrans = ptr;
+ switch (opcode)
+ {
+ case MU_IOCTL_OP_GET:
+ ptrans[0] = (mu_transport_t) tcp->fd;
+ ptrans[1] = NULL;
+ break;
+ case MU_IOCTL_OP_SET:
+ return ENOSYS;
+ default:
+ return EINVAL;
+ }
+ }
break;
-
+
default:
return ENOSYS;
}

Return to:

Send suggestions and report system problems to the System administrator.