- 07 Dec, 2010 1 commit
-
-
Two interfaces are provided: mu_prog_stream_create offers full control over the program execution environment (i.e. running privileges, cwd, resource limits) via a set of hints. A simpler interface, mu_command_stream_create, runs the command in the current environment. mu_filter_prog_stream_create is removed, because its functionality can be achieved by a correspondingly crafted set of hints to mu_prog_stream_create. * include/mailutils/prog.h: New file. * include/mailutils/mailutils.h: Include mailutils/prog.h * include/mailutils/Makefile.am (pkginclude_HEADERS): Add prog.h * include/mailutils/stream.h (mu_prog_stream_create) (mu_filter_prog_stream_create): Remove prototypes. * include/mailutils/sys/prog_stream.h (_mu_prog_stream): Change structure. (_mu_prog_limit_codes, _mu_prog_limit_flags): New externs. * include/mailutils/util.h (mu_set_user_privileges) (mu_switch_to_privs): New prototypes. * lib/userprivs.c: Move to libmailutils/base. * lib/Makefile.am (libmuaux_a_SOURCES): Remove userprivs.c * libmailutils/base/Makefile.am (libbase_la_SOURCES): Add userprivs.c * libmailutils/base/userprivs.c (mu_set_user_privileges): New function. (mu_switch_to_privs): Rewrite as another entry point to mu_set_user_privileges. * libmailutils/stream/prog_stream.c (_mu_prog_limit_flags) (_mu_prog_limit_codes): New global variables. (start_program_filter): Use hints to control execution environment. (_prog_stream_create): Save hints. (mu_prog_stream_create): Change signature. (mu_command_stream_create): New function (corresponds to the prior mu_prog_stream_create). (mu_filter_prog_stream_create): Remove function. * comsat/action.c (action_exec): Use new mu_prog_stream_create calling convention. * examples/murun.c: Rewrite. * mh/mhn.c (show_internal): Use new mu_prog_stream_create calling convention. * mh/tests/mhn.at: Reflect changes to mhn. * imap4d/preauth.c: Use mu_command_stream_create. * libmu_sieve/extensions/pipe.c * mail/decode.c * mail/pipe.c * mail/send.c * mh/mhl.c * mu/shell.c * mail/mail.h: Include mailutils/prog.h * mh/mh.h * po/POTFILES.in: Add libmailutils/base/userprivs.c.
Sergey Poznyakoff authored
-
- 09 Oct, 2010 1 commit
-
-
- 03 Oct, 2010 1 commit
-
-
One of stream flags bits indicates whether the stream is open or not. The mu_stream_open function refuses to act if it already is. The rest of functions (including mu_stream_close) refuses to act if the stream was not open. A special function (mu_stream_is_open) is provided to check if the stream is in open state. Any stream creation function returns an already open stream. The function mu_stream_open should be called only if the stream was previously closed by a call to mu_stream_close. * include/mailutils/stream.h (mu_stream_is_open): New proto. * include/mailutils/sys/stream.h (_MU_STR_OPEN): New flag. * libmailutils/stream.c (_mu_stream_create): Permit setting the _MU_STR_OPEN flag. (_stream_init): New static. (mu_stream_open): Return MU_ERR_OPEN if the stream is already open. (mu_stream_is_open): New function. (mu_stream_seek, mu_stream_read, mu_stream_readdelim) (mu_stream_getdelim, mu_stream_write, mu_stream_flush) (mu_stream_close, mu_stream_size, mu_stream_wait) (mu_stream_truncate): Check if the stream is open. Return MU_ERR_NOT_OPEN otherwise. * libmailutils/errors (MU_ERR_OPEN): Reword the diagnostics. * libmailutils/dbgstream.c (mu_dbgstream_create): Open the stream. * libmailutils/file_stream.c (mu_file_stream_create) (mu_fd_stream_create): Open the stream. * libmailutils/filter_iconv.c (mu_filter_iconv_create): Open the stream. * libmailutils/mapfile_stream.c (mu_mapfile_stream_create): Open the stream. * libmailutils/fltstream.c (mu_filter_stream_create): Mark the stream as open. * libmailutils/iostream.c (mu_iostream_create): Likewise. * libmailutils/memory_stream.c: Likewise. * libmailutils/message.c (_message_stream_create): Likewise. * libmailutils/message_stream.c (mu_message_stream_create): Likewise. * libmailutils/prog_stream.c (mu_prog_stream_create): Likewise. * libmailutils/socket_stream.c (mu_socket_stream_create): Likewise. * libmailutils/temp_file_stream.c (mu_temp_file_stream_create): Likewise. * libmailutils/amd.c (_amd_attach_message): Mark stream as open. * libmailutils/body.c (_body_get_stream): Likewise. * libmailutils/memory_stream.c: Likewise. * libmailutils/rdcache_stream.c (mu_rdcache_stream_create: Likewise. * libmailutils/stdio_stream.c (mu_stdio_stream_create): Likewise. * libmailutils/streamref.c (mu_streamref_create_abridged): Likewise. * libmailutils/tcp.c (mu_tcp_stream_create_with_source_ip): Likewise. * libmailutils/xscript-stream.c (mu_xscript_stream_create): Likewise. * libmu_auth/tls.c (_mu_tls_io_stream_create): Likewise. (_mu_tls_stream_create): Likewise. * libproto/pop/pop3_stream.c (mu_pop3_stream_create): Likewise. * examples/base64.c: Remove unnecessary mu_stream_open. * examples/http.c: Likewise. * examples/iconv.c: Likewise. * examples/msg-send.c: Likewise. * examples/murun.c: Likewise. * examples/musocio.c: Likewise. * examples/pop3client.c: Likewise. * imap4d/append.c: Likewise. * imap4d/io.c: Likewise. * imap4d/preauth.c: Likewise. * lib/mailcap.c: Likewise. * libmailutils/attachment.c: Likewise. * libmailutils/cfg_driver.c: Likewise. * libmailutils/header.c: Likewise. * libmailutils/mailcap.c: Likewise. * libmailutils/mimehdr.c: Likewise. * libmailutils/mutil.c: Likewise. * libmailutils/tests/fltst.c: Likewise. * libmailutils/tests/mailcap.c: Likewise. * libmailutils/vartab.c: Likewise. * libmailutils/wicket.c: Likewise. * libmu_argp/muinit.c: Likewise. * libmu_auth/ldap.c: Likewise. * libmu_sieve/extensions/pipe.c: Likewise. * libmu_sieve/extensions/spamd.c: Likewise. * libmu_sieve/extensions/vacation.c: Likewise. * libproto/imap/folder.c: Likewise. * libproto/mailer/smtp.c: Likewise. * libproto/mailer/smtp_starttls.c: Likewise. * libproto/mbox/mbox.c: Likewise. * libproto/nntp/nntp_connect.c: Likewise. * libproto/pop/mbox.c: Likewise. * libproto/pop/pop3_connect.c: Likewise. * libproto/pop/pop3_stls.c: Likewise. * maidag/mailtmp.c: Likewise. * mail/decode.c: Likewise. * mail/pipe.c: Likewise. * mail/send.c: Likewise. * mail/send.c: Likewise. * mail/write.c: Likewise. * mh/burst.c: Likewise. * mh/comp.c: Likewise. * mh/compcommon.c: Likewise. * mh/forw.c: Likewise. * mh/mh_init.c: Likewise. * mh/mh_whatnow.c: Likewise. * mh/mhl.c: Likewise. * mh/mhn.c: Likewise. * mh/repl.c: Likewise. * mimeview/mimeview.c: Likewise. * pop3d/extra.c: Likewise. * sieve/sieve.c: Likewise. * testsuite/smtpsend.c: Likewise.
Sergey Poznyakoff authored
-
- 25 Sep, 2010 1 commit
-
-
* libmailutils/prog_stream.c (REDIRECT_STDIN_P) (REDIRECT_STDOUT_P): Fix macros. * libmailutils/stream.c (mu_stream_open): If stream is open with MU_STREAM_APPEND, reposition to its end. (_stream_write_unbuffered): Do not signal EACCESS for MU_STREAM_APPEND streams. * mail/pipe.c (mail_pipe): Rewrite using streams instead of FILEs. * mail/send.c (fill_body): Likewise. * mail/write.c (mail_write): Likewise.
Sergey Poznyakoff authored
-
- 08 Sep, 2010 2 commits
-
-
The `mail' and `frm' utilities pass tests. * include/mailutils/stream.h (mu_stream_err): New proto. * libproto/mbox/mbox.c (_msg_stream_setup) (_msg_body_setup): Fix stream abridgement. (mbox_envelope_date, mbox_envelope_sender): Fix seek position. (uid_to_stream): Fix invocation of mu_stream_printf. (append_message_to_stream): Likewise. (mbox_expunge_unlocked): Rewind tempstr before copying its contents back to the mailbox. (mbox_expunge0): Open tempstr. * libproto/mbox/mbox0.h (_mbox_message)<header_from>: Rename to envel_from. <header_from_end>: Rename to envel_from_end. All uses changed. * libproto/mbox/mboxscan.c: Minor changes. * mail/decode.c: Use streamrefs. * mail/escape.c: Likewise. * mail/msgset.y: Likewise. * mail/pipe.c: Likewise. * mail/print.c: Likewise. * mail/top.c: Likewise. * mail/write.c: Likewise. * mail/send.c: Use streamrefs. (mail_send0): Reset env->header after assigning it to the message. * mailbox/body.c (_body_seek): Fix a typo which produced a recursive call. * mailbox/file_stream.c (fd_truncate): New function. (_mu_file_stream_create): Initialize str->stream.truncate. * mailbox/header.c (header_parse): Fix parsing of blurbs lacking terminating empty line. (header_seek): Fix boundary checks. Return new position in presult. * mailbox/message.c (string_find_eoh): Rewrite to handle \n\n split between two successive invocations. (_header_fill): Update the invocation of string_find_eoh. * mailbox/stream.c (mu_stream_destroy): Call mu_stream_close. (mu_stream_get_flags, mu_stream_set_flags) (mu_stream_clr_flags): Ignore internal bits. (mu_stream_err): New function. (mu_stream_close): Close the stream only if it is not used by anyone else. * mailbox/streamref.c (_streamref_read): Clear transport error if ESPIPE is returned. (_streamref_size): Take into account sp->end and sp->start. (mu_streamref_create_abridged): Set pointer to 0.
Sergey Poznyakoff authored -
Does not compile yet. New files: * mailbox/streamref.c * include/mailutils/sys/streamref.h * include/mailutils/sys/file_stream.h * include/mailutils/sys/header_stream.h * include/mailutils/sys/mapfile_stream.h * include/mailutils/sys/memory_stream.h * include/mailutils/sys/message_stream.h * include/mailutils/sys/prog_stream.h * include/mailutils/sys/socket_stream.h * include/mailutils/sys/stdio_stream.h * include/mailutils/sys/stream.h * include/mailutils/sys/streamtrans.h * mailbox/prog_stream.c * mailbox/stdio_stream.c * mailbox/stream_printf.c * mailbox/stream_vprintf.c * mailbox/temp_file_stream.c * mailbox/streamcpy.c * mailbox/binflt.c * mailbox/crlfflt.c * mailbox/fltstream.c * mailbox/qpflt.c * mailbox/linelenflt.c Removed files: * mailbox/filter_rfc822.c * mailbox/filter_trans.c Moved files (with edits): * libproto/include/filter0.h -> include/mailutils/sys/filter.h * libproto/include/header0.h -> include/mailutils/sys/header.h * libproto/include/message0.h -> include/mailutils/sys/message.h * libproto/include/mime0.h -> include/mailutils/sys/mime.h Modified files: * comsat/action.c * config/mailutils-config.c * examples/base64.c * examples/cpp/msg-send.cc * examples/header.c * examples/http.c * examples/iconv.c * examples/mimetest.c * examples/msg-send.c * examples/mta.c * examples/murun.c * examples/nntpclient.c * examples/pop3client.c * imap4d/append.c * imap4d/auth_gsasl.c * imap4d/fetch.c * imap4d/preauth.c * imap4d/search.c * imap4d/util.c * include/mailutils/body.h * include/mailutils/folder.h * include/mailutils/header.h * include/mailutils/mailbox.h * include/mailutils/mailer.h * include/mailutils/mailutils.h * include/mailutils/message.h * include/mailutils/stream.h * include/mailutils/sys/Makefile.am * include/mailutils/sys/filter.h * include/mailutils/sys/header.h * include/mailutils/sys/message.h * include/mailutils/sys/mime.h * include/mailutils/sys/nntp.h * include/mailutils/sys/pop3.h * include/mailutils/sys/stream.h * include/mailutils/types.hin * lib/mailcap.c * lib/mu_dbm.h * libmu_argp/muinit.c * libmu_auth/ldap.c * libmu_auth/tls.c * libmu_scm/Makefile.am * libmu_scm/mu_body.c * libmu_scm/mu_message.c * libmu_scm/mu_port.c * libmu_sieve/actions.c * libmu_sieve/extensions/pipe.c * libmu_sieve/extensions/spamd.c * libmu_sieve/extensions/vacation.c * libproto/mailer/smtp.c * libproto/mbox/mboxscan.c * libproto/mbox/mbox.c * libproto/mbox/mbox0.h * libproto/nntp/nntp_article.c * libproto/nntp/nntp_carrier.c * libproto/nntp/nntp_destroy.c * libproto/nntp/nntp_ihave.c * libproto/nntp/nntp_post.c * libproto/nntp/nntp_readline.c * libproto/nntp/nntp_sendline.c * libproto/pop/pop3_carrier.c * libproto/pop/pop3_destroy.c * libproto/pop/pop3_readline.c * libproto/pop/pop3_sendline.c * libproto/pop/pop3_stat.c * maidag/mailtmp.c * mail/decode.c * mail/escape.c * mail/msgset.y * mail/pipe.c * mail/print.c * mail/send.c * mail/top.c * mail/util.c * mail/write.c * mailbox/Makefile.am * mailbox/amd.c * mailbox/attachment.c * mailbox/body.c * mailbox/cfg_driver.c * mailbox/cfg_format.c * mailbox/debug.c * mailbox/file_stream.c * mailbox/folder.c * mailbox/hdritr.c * mailbox/header.c * mailbox/mailbox.c * mailbox/mailcap.c * mailbox/mailer.c * mailbox/mapfile_stream.c * mailbox/memory_stream.c * mailbox/message.c * mailbox/message_stream.c * mailbox/mime.c * mailbox/mimehdr.c * mailbox/mutil.c * mailbox/prog_stream.c * mailbox/progmailer.c * mailbox/rfc2047.c * mailbox/socket_stream.c * mailbox/stream.c * mailbox/stream_vprintf.c * mailbox/tcp.c * mailbox/vartab.c * mailbox/wicket.c * mh/burst.c * mh/comp.c * mh/compcommon.c * mh/forw.c * mh/mh_ctx.c * mh/mh_format.c * mh/mh_init.c * mh/mh_list.c * mh/mh_whatnow.c * mh/mhl.c * mh/mhn.c * mh/pick.y * mh/repl.c * mimeview/mimeview.c * mu-aux/generr.awk * pop3d/extra.c * pop3d/pop3d.h * pop3d/retr.c * pop3d/top.c * readmsg/msglist.c * readmsg/readmsg.c * sieve/sieve.c
Sergey Poznyakoff authored
-
- 05 Jan, 2010 1 commit
- 11 Jul, 2009 1 commit
-
-
* NEWS: Update. * doc/texinfo/programs.texi: Document new variables and commands. * mail/envelope.c: New file. * mail/mailvar.c: New file. * mail/Makefile.am (mail_SOURCES): Add envelope.c and mailvar.c. * mail/mail.h (EF_HIDDEN): New constant (mail_env_data_t, mail_env_entry, mail_env_entry_is_set) (mail_env_entry, util_getenv, util_printenv, util_setenv) (var_iterator_t, var_iterate_next, var_iterate_first) (var_iterate_end, var_compl): Removed. (union mailvar_value, struct mailvar_variable (mail_variable, mail_envelope, print_envelope) (mailvar_find_variable, mailvar_get, mailvar_print) (mailvar_variable_format, mailvar_set, mailvar_set_compl): Add prototypes. (MOPTF_OVERWRITE, MOPTF_QUIET) * mail/table.c: List new commands: envelope, setq, variable. Implement completion for `set'. * mail/testsuite/mail/if.exp: Use setq to set a read-only variable. mail/alias.c, mail/decode.c, mail/delete.c, mail/escape.c mail/file.c, mail/folders.c, mail/from.c, mail/if.c, mail/mail.c, mail/mailline.c, mail/msgset.y, mail/pipe.c, mail/print.c, mail/quit.c, mail/reply.c, mail/send.c, mail/set.c, mail/shell.c, mail/top.c, mail/unset.c, mail/util.c: Use mailvar functions.
Sergey Poznyakoff authored
-
- 27 Jun, 2007 1 commit
-
-
- 13 Feb, 2007 1 commit
-
-
- 27 Aug, 2005 1 commit
-
-
- 17 May, 2005 1 commit
-
-
- 05 Mar, 2005 1 commit
-
-
- 09 Feb, 2003 1 commit
-
-
- 14 Jan, 2003 1 commit
-
-
- 23 Dec, 2002 1 commit
-
-
- 05 Nov, 2002 1 commit
-
-
- 13 Oct, 2002 1 commit
-
-
- 07 Aug, 2002 1 commit
-
-
- 15 Sep, 2001 1 commit
-
-
the code based on the hints generated by the compiler. The usual errors: - signed vs unsigned, signedness or unsignedness problems. - printf() wrong formats - wrong prototypes declarations - and different buglets - "const char *" vs "char *" - unused variables - unused arguments. Tell the compiler by typecasting to void (void)var. - Some variable when shadowed, meaning in another block variable of the same name where reused. - atoi() is not an ANSI C function, we should use strtol(). Changes to comply to GNU coding standards, and nuke trailing spaces. * mail/alias.c (alia_lookup): No prototypes and scope static. (hash_num, max_rehash, aliases): Scope static and unsigned. (hash): unsigned. (alias_rehash): i unsigned. (alias_lookup_or_install): slot variable unused. (alias_destroy): unsigned. * mail/copy.c (mail_copy0): fprintf wrong format. * mail/decode.c: dislay_message change prototype. (mail_decode): Cast when calling util_msgset_iterate(). (display_message): Prototype change. (display_headers): unsigned issues. * mail/delete.c: Buglet was caling mail_delete0() instead of mail_delete. * mail/eq.c: Unused arguments. * mail/exit.c: Unused arguments. * mail/folders.c: Unused arguments. * mail/followup.c: Unused variables. * mail/from.c (mail_from): variable buffer was shadowing use variable name instead. snprintf() formatting issues. * mail/headers.c: Unsigned issues. * mail/if.c: Unused arguments. * mail/inc.c: Unused arguments. * mail/list.c: Use const char *. * mail/mail.c: options[], argp[] initialised all elements. (mail_cmdline): Unused arguments. (main): Unsigned issues. (mail_warranty): Unused arguments. * mail/mail.h: function_t with complete prototype this necessary to let the compiler do proper checks. struct mail_command_entry rearrange the fields and a new field int (*escfunc) __P ((int, char **, struct send_environ *)); Indentation rearrangements. * mail/mailline.c (ml_getc): Scope is static now. typecast for const char *. (ml_reread): Typecast. * mail/msgset.y: Declare yyerror() and yylex(). (msgset_select): Change of prototpe to let the compiler do checks. (selec_sender): Unsused arguments. * mail/pipe.c: Rename variable pipe to tube. * mail/print.c: Unsigness and some shadow variables. * mail/quit.c: Shadow variables. * mail/send.c: Typecast when necessary. Use the second (escfunc) field now. Some shadow variables. * mail/shell.c: Unsigned. * mail/table.c: Readjust the table to correspond to the signature change in mail.h. * mail/tag.c: Prototype change. * mail/util.c (util_msglist_esccmd): New function. (util_find_entry): Prototype change. And check return value of getenv(). (util_screen_lines): Change atoi() to strtoul(). (util_screen_columns): Change atoi() to strtoul(). (util_find_env): Signedness. (util_fullpath): Prototype changed(const). (util_slist_to_string):Protorype changed (const). (util_strcat) :Protorype changed (const). (util_tempfile): const. * mail/var.c: Unsignedness, Unused arguments. (var_quote): Use new function util_msglist_esccmd(). * mail/version.c: Unused arguments. * mail/write.c: printf formats. * mail/z.c: Signedness.
Alain Magloire authored
-
- 06 Aug, 2001 1 commit
-
-
- 25 Jun, 2001 1 commit
- 04 May, 2001 1 commit
- 16 Apr, 2001 1 commit
-
-
attempt to assign to it. To be able to redirect at will stdout we need to assign it. In GNU lib C, it was not error since stdout stderr, and stdin are variables, but to be portable we can not assume this. The way out is to always use fprintf () and have a global varialbe "ofile" pointing to stdout. * mail/*: All the files under mail been change to use fprintf() and ofile as the default stdout. Copyright updated.
Alain Magloire authored
-
- 11 Jan, 2001 1 commit
-
-
Beginning of mail source command implementation Have mail source MAILRC file on startup Fix bugs in mail pipe command
Jakob Kaivo authored
-
- 07 Sep, 2000 2 commits
-
- 05 Sep, 2000 1 commit
-
-
- 02 Sep, 2000 1 commit