From: Tomi Ollila Date: Tue, 28 May 2013 06:34:08 +0000 (+0300) Subject: Re: [PATCH v2 1/4] cli: add global option --stderr=FILE X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3fb86370d2771a51b01c6e5511f5cb0793586d3d;p=notmuch-archives.git Re: [PATCH v2 1/4] cli: add global option --stderr=FILE --- diff --git a/fe/9cf56a03801854a3b97aae2ef5bae771dab600 b/fe/9cf56a03801854a3b97aae2ef5bae771dab600 new file mode 100644 index 000000000..b80b50dbc --- /dev/null +++ b/fe/9cf56a03801854a3b97aae2ef5bae771dab600 @@ -0,0 +1,169 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 04807431FAF + for ; Mon, 27 May 2013 23:34:23 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 0 +X-Spam-Level: +X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] + autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id wbuNETRABVh0 for ; + Mon, 27 May 2013 23:34:14 -0700 (PDT) +Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) + by olra.theworths.org (Postfix) with ESMTP id A4DDF431FAE + for ; Mon, 27 May 2013 23:34:14 -0700 (PDT) +Received: from guru.guru-group.fi (localhost [IPv6:::1]) + by guru.guru-group.fi (Postfix) with ESMTP id 13443100093; + Tue, 28 May 2013 09:34:09 +0300 (EEST) +From: Tomi Ollila +To: Austin Clements +Subject: Re: [PATCH v2 1/4] cli: add global option --stderr=FILE +In-Reply-To: <20130527214436.GT5999@mit.edu> +References: <1369557954-13439-1-git-send-email-tomi.ollila@iki.fi> + <1369557954-13439-2-git-send-email-tomi.ollila@iki.fi> + <20130527214436.GT5999@mit.edu> +User-Agent: Notmuch/0.15.2+115~g12cf6af (http://notmuchmail.org) Emacs/24.3.1 + (x86_64-unknown-linux-gnu) +X-Face: HhBM'cA~ +MIME-Version: 1.0 +Content-Type: text/plain +Cc: notmuch@notmuchmail.org +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Tue, 28 May 2013 06:34:23 -0000 + +On Tue, May 28 2013, Austin Clements wrote: + +> Quoth Tomi Ollila on May 26 at 11:45 am: +>> With this option all writes to stderr are redirected to the spesified +>> FILE (or to stdout on case FILE is '-'). This is immediately useful +>> in emacs interface as some of its exec intefaces do not provide +>> separation of stdout and stderr. +>> --- +>> notmuch-client.h | 1 + +>> notmuch.c | 32 ++++++++++++++++++++++++++++++++ +>> 2 files changed, 33 insertions(+) +>> +>> diff --git a/notmuch-client.h b/notmuch-client.h +>> index 45749a6..4a3c7ac 100644 +>> --- a/notmuch-client.h +>> +++ b/notmuch-client.h +>> @@ -54,6 +54,7 @@ typedef GMimeCipherContext notmuch_crypto_context_t; +>> #include +>> #include +>> #include +>> +#include +>> #include +>> #include +>> #include +>> diff --git a/notmuch.c b/notmuch.c +>> index f51a84f..654a568 100644 +>> --- a/notmuch.c +>> +++ b/notmuch.c +>> @@ -251,6 +251,32 @@ notmuch_command (notmuch_config_t *config, +>> return 0; +>> } +>> +>> +static int +>> +redirect_stderr (const char * stderr_file) +>> +{ +>> + if (strcmp (stderr_file, "-") == 0) { +>> + if (dup2 (STDOUT_FILENO, STDERR_FILENO) < 0) { +>> + perror ("dup2"); +>> + return 1; +>> + } +>> + } else { +>> + int fd = open (stderr_file, O_WRONLY|O_CREAT|O_APPEND, 0644); +> +> I think this should include O_TRUNC; otherwise it's too error-prone to +> use programmatically. + +You're right! I thought this one night and was supposed check that it is +O_TRUNC there -- forgot and obviously it wasn't ;/ + +> The permissions should be 0666 (if the user's +> umask says things should be group or world writable, it's not our job +> to disagree). + +I agree that 0644 is incorrect -- but IMHO it should be 0600 -- when the +data is written to /tmp world-readable file gave others chance to read +potentially sensitive information from that file... + +I'll ask this (also) in IRC -- if people generally agree the bits should +be 0666 I'll do that change instead (even personally opposing ATM). + +I'll also do the man and NEWS chances suggested for v3. + +Thanks for the review (this also goes to Jani & Mark). + +Tomi + +>> + if (fd < 0) { +>> + fprintf (stderr, "Error: Cannot redirect stderr to '%s': %s\n", +>> + stderr_file, strerror (errno)); +>> + return 1; +>> + } +>> + if (fd != STDERR_FILENO) { +>> + if (dup2 (fd, STDERR_FILENO) < 0) { +>> + perror ("dup2"); +>> + return 1; +>> + } +>> + close (fd); +>> + } +>> + } +>> + return 0; +>> +} +>> + +>> int +>> main (int argc, char *argv[]) +>> { +>> @@ -259,6 +285,7 @@ main (int argc, char *argv[]) +>> const char *command_name = NULL; +>> command_t *command; +>> char *config_file_name = NULL; +>> + char *stderr_file = NULL; +>> notmuch_config_t *config; +>> notmuch_bool_t print_help=FALSE, print_version=FALSE; +>> int opt_index; +>> @@ -268,6 +295,7 @@ main (int argc, char *argv[]) +>> { NOTMUCH_OPT_BOOLEAN, &print_help, "help", 'h', 0 }, +>> { NOTMUCH_OPT_BOOLEAN, &print_version, "version", 'v', 0 }, +>> { NOTMUCH_OPT_STRING, &config_file_name, "config", 'c', 0 }, +>> + { NOTMUCH_OPT_STRING, &stderr_file, "stderr", '\0', 0 }, +>> { 0, 0, 0, 0, 0 } +>> }; +>> +>> @@ -287,6 +315,10 @@ main (int argc, char *argv[]) +>> return 1; +>> } +>> +>> + if (stderr_file && redirect_stderr (stderr_file) != 0) { +>> + /* error already printed */ +>> + return 1; +>> + } +>> if (print_help) +>> return notmuch_help_command (NULL, argc - 1, &argv[1]); +>> +> _______________________________________________ +> notmuch mailing list +> notmuch@notmuchmail.org +> http://notmuchmail.org/mailman/listinfo/notmuch