From acb70746a872124f0fe8f9c1a27ccd1742fb7e48 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Thu, 9 Jan 2025 16:32:57 +0000 Subject: [PATCH] pty: Ensure to register SIGWINCH in the parent process This makes the entire terminal resizing work again... Signed-off-by: Michael Tremer --- src/pakfire/pty.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/pakfire/pty.c b/src/pakfire/pty.c index cbc1ad235..0c9ab9d84 100644 --- a/src/pakfire/pty.c +++ b/src/pakfire/pty.c @@ -1075,12 +1075,20 @@ static int pakfire_pty_setup(sd_event_source* source, int fd, uint32_t events, v pty->master.fd, EPOLLIN|EPOLLOUT|EPOLLET, pakfire_pty_master, pty); if (r < 0) { ERROR(pty->ctx, "Could not add the master file descriptor: %s\n", strerror(-r)); - return r; + return -errno; } // Set description sd_event_source_set_description(pty->master.event, "pty-master"); + // Listen to SIGWINCH + r = sd_event_add_signal(pty->loop, &pty->sigwinch_event, + SIGWINCH|SD_EVENT_SIGNAL_PROCMASK, pakfire_pty_SIGWINCH, pty); + if (r < 0) { + ERROR(pty->ctx, "Could not register SIGWINCH: %s\n", strerror(-r)); + return -errno; + } + // Setup forwarding r = pakfire_pty_setup_forwarding(pty); if (r < 0) @@ -1264,14 +1272,6 @@ int pakfire_pty_open(struct pakfire_pty* pty) { close(pty->master.fd); pty->master.fd = -EBADF; - // Listen to SIGWINCH - r = sd_event_add_signal(pty->loop, &pty->sigwinch_event, - SIGWINCH|SD_EVENT_SIGNAL_PROCMASK, pakfire_pty_SIGWINCH, pty); - if (r < 0) { - ERROR(pty->ctx, "Could not register SIGWINCH: %s\n", strerror(-r)); - return r; - } - return 0; } -- 2.47.3