Quoting Stéphane Graber (stgra...@ubuntu.com):
> This changes the default behaviour from complaining about it but not closing
> the inherited fds to logging an INFO entry and closing them automatically.
> That's the same as always calling lxc-start with --close-all-fds.
> 
> Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
> Cc: Daniel Lezcano <daniel.lezc...@free.fr>
> Cc: Serge Hallyn <serge.hal...@canonical.com>

Acked-by: Serge Hallyn <serge.hal...@canonical.com>

thanks,
-serge

> 
> ---
>  doc/lxc-start.sgml.in |   15 ---------------
>  src/lxc/arguments.h   |    3 ---
>  src/lxc/conf.h        |    1 -
>  src/lxc/lxc_start.c   |   10 +---------
>  src/lxc/start.c       |   10 ++--------
>  5 files changed, 3 insertions(+), 36 deletions(-)
> 
> diff --git a/doc/lxc-start.sgml.in b/doc/lxc-start.sgml.in
> index 4504d58..08f1e81 100644
> --- a/doc/lxc-start.sgml.in
> +++ b/doc/lxc-start.sgml.in
> @@ -147,21 +147,6 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 
> 02111-1307 USA
>       </listitem>
>        </varlistentry>
>  
> -      <varlistentry>
> -     <term>
> -       <option>-C,
> -       --close-all-fds</option>
> -     </term>
> -     <listitem>
> -       <para>
> -       If any file descriptors are inherited, close them.  If this option
> -       is not specified, then <command>lxc-start</command> will exit with
> -       failure instead. Note: <replaceable>--daemon</replaceable> implies
> -       <replaceable>--close-all-fds</replaceable>.
> -       </para>
> -     </listitem>
> -      </varlistentry>
> -
>      </variablelist>
>  
>    </refsect1>
> diff --git a/src/lxc/arguments.h b/src/lxc/arguments.h
> index 40f0d6c..6a2ffc6 100644
> --- a/src/lxc/arguments.h
> +++ b/src/lxc/arguments.h
> @@ -58,9 +58,6 @@ struct lxc_arguments {
>       /* for lxc-wait */
>       char *states;
>  
> -     /* close fds from parent? */
> -     int close_all_fds;
> -
>       /* remaining arguments */
>       char *const *argv;
>       int argc;
> diff --git a/src/lxc/conf.h b/src/lxc/conf.h
> index 09f55cb..24e7c43 100644
> --- a/src/lxc/conf.h
> +++ b/src/lxc/conf.h
> @@ -215,7 +215,6 @@ struct lxc_conf {
>       struct lxc_console console;
>       struct lxc_rootfs rootfs;
>       char *ttydir;
> -     int close_all_fds;
>  };
>  
>  /*
> diff --git a/src/lxc/lxc_start.c b/src/lxc/lxc_start.c
> index 7559444..fdd4c72 100644
> --- a/src/lxc/lxc_start.c
> +++ b/src/lxc/lxc_start.c
> @@ -58,9 +58,8 @@ static int my_parser(struct lxc_arguments* args, int c, 
> char* arg)
>  {
>       switch (c) {
>       case 'c': args->console = arg; break;
> -     case 'd': args->daemonize = 1; args->close_all_fds = 1; break;
> +     case 'd': args->daemonize = 1; break;
>       case 'f': args->rcfile = arg; break;
> -     case 'C': args->close_all_fds = 1; break;
>       case 's': return lxc_config_define_add(&defines, arg);
>       }
>       return 0;
> @@ -71,7 +70,6 @@ static const struct option my_longopts[] = {
>       {"rcfile", required_argument, 0, 'f'},
>       {"define", required_argument, 0, 's'},
>       {"console", required_argument, 0, 'c'},
> -     {"close-all-fds", no_argument, 0, 'C'},
>       LXC_COMMON_OPTIONS
>  };
>  
> @@ -87,9 +85,6 @@ Options :\n\
>    -d, --daemon         daemonize the container\n\
>    -f, --rcfile=FILE    Load configuration file FILE\n\
>    -c, --console=FILE   Set the file output for the container console\n\
> -  -C, --close-all-fds  If any fds are inherited, close them\n\
> -                       If not specified, exit with failure instead\n\
> -                    Note: --daemon implies --close-all-fds\n\
>    -s, --define KEY=VAL Assign VAL to configuration variable KEY\n",
>       .options   = my_longopts,
>       .parser    = my_parser,
> @@ -204,9 +199,6 @@ int main(int argc, char *argv[])
>               return err;
>       }
>  
> -     if (my_args.close_all_fds)
> -             conf->close_all_fds = 1;
> -
>       err = lxc_start(my_args.name, args, conf);
>  
>       /*
> diff --git a/src/lxc/start.c b/src/lxc/start.c
> index 920ff77..ddc0923 100644
> --- a/src/lxc/start.c
> +++ b/src/lxc/start.c
> @@ -140,7 +140,6 @@ int lxc_check_inherited(struct lxc_conf *conf, int 
> fd_to_ignore)
>       int fd, fddir;
>       DIR *dir;
>  
> -restart:
>       dir = opendir("/proc/self/fd");
>       if (!dir) {
>               WARN("failed to open directory: %m");
> @@ -167,13 +166,8 @@ restart:
>               if (match_fd(fd))
>                       continue;
>  
> -             if (conf->close_all_fds) {
> -                     close(fd);
> -                     closedir(dir);
> -                     INFO("closed inherited fd %d", fd);
> -                     goto restart;
> -             }
> -             WARN("inherited fd %d", fd);
> +             close(fd);
> +             INFO("closed inherited fd %d", fd);
>       }
>  
>       closedir(dir); /* cannot fail */
> -- 
> 1.7.9.5
> 

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to