[lxc-devel] [PATCH 2/5] lxc-start isn't in the foreground anymore, so TTY signals don't reach it
Daniel Lezcano
daniel.lezcano at free.fr
Thu Jun 10 19:55:07 UTC 2010
On 06/09/2010 07:56 PM, Ferenc Wagner wrote:
> Signed-off-by: Ferenc Wagner<wferi at niif.hu>
> ---
> src/lxc/start.c | 9 ---------
> src/lxc/utils.h | 29 ++---------------------------
> 2 files changed, 2 insertions(+), 36 deletions(-)
>
Yeah, cleanup ! +1
> diff --git a/src/lxc/start.c b/src/lxc/start.c
> index 7bbcf5a..ccd8bcd 100644
> --- a/src/lxc/start.c
> +++ b/src/lxc/start.c
> @@ -129,9 +129,6 @@ int signalfd(int fd, const sigset_t *mask, int flags)
>
> lxc_log_define(lxc_start, lxc);
>
> -LXC_TTY_HANDLER(SIGINT);
> -LXC_TTY_HANDLER(SIGQUIT);
> -
> static int match_fd(int fd)
> {
> return (fd == 0 || fd == 1 || fd == 2);
> @@ -574,10 +571,6 @@ int __lxc_start(const char *name, struct lxc_conf *conf,
> goto out_fini;
> }
>
> - /* Avoid signals from terminal */
> - LXC_TTY_ADD_HANDLER(SIGINT);
> - LXC_TTY_ADD_HANDLER(SIGQUIT);
> -
> err = lxc_poll(name, handler);
> if (err) {
> ERROR("mainloop exited with an error");
> @@ -589,8 +582,6 @@ int __lxc_start(const char *name, struct lxc_conf *conf,
>
> err = lxc_error_set_and_log(handler->pid, status);
> out_fini:
> - LXC_TTY_DEL_HANDLER(SIGQUIT);
> - LXC_TTY_DEL_HANDLER(SIGINT);
> lxc_unlink_nsgroup(name);
> lxc_fini(name, handler);
> return err;
> diff --git a/src/lxc/utils.h b/src/lxc/utils.h
> index 114b668..d47c983 100644
> --- a/src/lxc/utils.h
> +++ b/src/lxc/utils.h
> @@ -23,34 +23,9 @@
> #ifndef _utils_h
> #define _utils_h
>
> -#define LXC_TTY_HANDLER(s) \
> - static struct sigaction lxc_tty_sa_##s; \
> - static void tty_##s##_handler(int sig, siginfo_t *info, void *ctx) \
> - { \
> - if (lxc_tty_sa_##s.sa_handler == SIG_DFL || \
> - lxc_tty_sa_##s.sa_handler == SIG_IGN) \
> - return; \
> - (*lxc_tty_sa_##s.sa_sigaction)(sig, info, ctx); \
> - }
> -
> -#define LXC_TTY_ADD_HANDLER(s) \
> - do { \
> - struct sigaction sa; \
> - sa.sa_sigaction = tty_##s##_handler; \
> - sa.sa_flags = SA_SIGINFO; \
> - sigfillset(&sa.sa_mask); \
> - /* No error expected with sigaction. */ \
> - sigaction(s,&sa,&lxc_tty_sa_##s); \
> - } while (0)
> -
> -#define LXC_TTY_DEL_HANDLER(s) \
> - do { \
> - sigaction(s,&lxc_tty_sa_##s, NULL); \
> - } while (0)
> -
> -#endif
> -
> extern int lxc_copy_file(const char *src, const char *dst);
> extern int lxc_setup_fs(void);
> extern int get_u16(ushort *val, const char *arg, int base);
> extern int mkdir_p(const char *dir, mode_t mode);
> +
> +#endif
>
More information about the lxc-devel
mailing list