<div dir="ltr">Actually I think there is no reason not to return a result to the caller, I'll send an incremental patch to do that.<div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Sat, Sep 21, 2013 at 12:47 AM, Serge Hallyn <span dir="ltr"><<a href="mailto:serge.hallyn@ubuntu.com" target="_blank">serge.hallyn@ubuntu.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Quoting S.Çağlar Onur (<a href="mailto:caglar@10ur.org">caglar@10ur.org</a>):<br>
> Being able to set close_all_fds via API would be usefull for the<br>
> situations like running an application (let's say web server)<br>
> that controls the lifecycle of the container using the LXC API.<br>
> We don't want forked process to inherit parent's resource (file, socket, ...)<br>
><br>
> Signed-off-by: S.Çağlar Onur <<a href="mailto:caglar@10ur.org">caglar@10ur.org</a>><br>
<br>
</div>Thanks, looks good to me.<br>
<br>
Acked-by: Serge E. Hallyn <<a href="mailto:serge.hallyn@ubuntu.com">serge.hallyn@ubuntu.com</a>><br>
<div><div class="h5"><br>
> ---<br>
>  src/lxc/lxc_start.c    |  2 +-<br>
>  src/lxc/lxccontainer.c | 13 +++++++++++++<br>
>  src/lxc/lxccontainer.h |  1 +<br>
>  3 files changed, 15 insertions(+), 1 deletion(-)<br>
><br>
> diff --git a/src/lxc/lxc_start.c b/src/lxc/lxc_start.c<br>
> index dfc514e..a30a9f6 100644<br>
> --- a/src/lxc/lxc_start.c<br>
> +++ b/src/lxc/lxc_start.c<br>
> @@ -265,7 +265,7 @@ int main(int argc, char *argv[])<br>
>       }<br>
><br>
>       if (my_args.close_all_fds)<br>
> -             conf->close_all_fds = 1;<br>
> +             c->want_close_all_fds(c);<br>
><br>
>       err = c->start(c, 0, args) ? 0 : -1;<br>
><br>
> diff --git a/src/lxc/lxccontainer.c b/src/lxc/lxccontainer.c<br>
> index e8dde91..727c680 100644<br>
> --- a/src/lxc/lxccontainer.c<br>
> +++ b/src/lxc/lxccontainer.c<br>
> @@ -456,6 +456,18 @@ static void lxcapi_want_daemonize(struct lxc_container *c)<br>
>       container_mem_unlock(c);<br>
>  }<br>
><br>
> +static void lxcapi_want_close_all_fds(struct lxc_container *c)<br>
> +{<br>
> +     if (!c || !c->lxc_conf)<br>
> +             return;<br>
> +     if (container_mem_lock(c)) {<br>
> +             ERROR("Error getting mem lock");<br>
> +             return;<br>
> +     }<br>
> +     c->lxc_conf->close_all_fds = 1;<br>
> +     container_mem_unlock(c);<br>
> +}<br>
> +<br>
>  static bool lxcapi_wait(struct lxc_container *c, const char *state, int timeout)<br>
>  {<br>
>       int ret;<br>
> @@ -2682,6 +2694,7 @@ struct lxc_container *lxc_container_new(const char *name, const char *configpath<br>
>       c->init_pid = lxcapi_init_pid;<br>
>       c->load_config = lxcapi_load_config;<br>
>       c->want_daemonize = lxcapi_want_daemonize;<br>
> +     c->want_close_all_fds = lxcapi_want_close_all_fds;<br>
>       c->start = lxcapi_start;<br>
>       c->startl = lxcapi_startl;<br>
>       c->stop = lxcapi_stop;<br>
> diff --git a/src/lxc/lxccontainer.h b/src/lxc/lxccontainer.h<br>
> index 89b55bd..8b6c6ef 100644<br>
> --- a/src/lxc/lxccontainer.h<br>
> +++ b/src/lxc/lxccontainer.h<br>
> @@ -68,6 +68,7 @@ struct lxc_container {<br>
>       bool (*startl)(struct lxc_container *c, int useinit, ...);<br>
>       bool (*stop)(struct lxc_container *c);<br>
>       void (*want_daemonize)(struct lxc_container *c);<br>
> +     void (*want_close_all_fds)(struct lxc_container *c);<br>
>       // Return current config file name.  The result is strdup()d, so free the result.<br>
>       char *(*config_file_name)(struct lxc_container *c);<br>
>       // for wait, timeout == -1 means wait forever, timeout == 0 means don't wait.<br>
> --<br>
> 1.8.1.2<br>
><br>
><br>
</div></div>> ------------------------------------------------------------------------------<br>
> LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!<br>
> 1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint<br>
> 2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes<br>
> Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13.<br>
> <a href="http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk" target="_blank">http://pubads.g.doubleclick.net/gampad/clk?id=58041151&iu=/4140/ostg.clktrk</a><br>
> _______________________________________________<br>
> Lxc-devel mailing list<br>
> <a href="mailto:Lxc-devel@lists.sourceforge.net">Lxc-devel@lists.sourceforge.net</a><br>
> <a href="https://lists.sourceforge.net/lists/listinfo/lxc-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/lxc-devel</a><br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>S.Çağlar Onur <<a href="mailto:caglar@10ur.org">caglar@10ur.org</a>>
</div>