]> git.ipfire.org Git - thirdparty/lxc.git/commit
lxc/{terminal, file_utils}: ensure complete data writes in ptx/peer io handlers
authorDreamConnected <1487442471@qq.com>
Sun, 26 Oct 2025 05:28:13 +0000 (13:28 +0800)
committerAlexander Mikhalitsyn <aleksandr.mikhalitsyn@futurfusion.io>
Thu, 22 Jan 2026 11:59:05 +0000 (12:59 +0100)
commit4cb9884ed7d3ca98ccd9bf2abbd508255b4e1fb7
treeb1b501bb573c923e4559526b0930c46bf7b71ee8
parent5d9839bc1316fa185d8c29b90982684b32e3dfa7
lxc/{terminal, file_utils}: ensure complete data writes in ptx/peer io handlers

Previously, lxc_write_nointr could return without writing all data
when write() returned EAGAIN/EWOULDBLOCK due to buffer full conditions.

This change:
- Implements a loop to continue writing until all data is sent
- Handles EINTR, EAGAIN, and EWOULDBLOCK errors appropriately
- Uses poll() to wait for fd to become ready when blocked
- Maintains backward compatibility while fixing partial write issues

Signed-off-by: DreamConnected <1487442471@qq.com>
[ alex ]
- introduce a separate helper lxc_write_all and use it only in ptx/peer
  io handlers
- cleanup the code a bit
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@futurfusion.io>
src/lxc/file_utils.c
src/lxc/file_utils.h
src/lxc/terminal.c