Skip to content
  • Yuri Pudgorodskiy's avatar
    27559c21
    qga: Workaround for console redirection from non-interactive qemu-ga service · 27559c21
    Yuri Pudgorodskiy authored
    
    
    mingw-glib uses helper process to assist gspawn() api. There are two
    versions of helpers, one with main() and another with WinMain() startup
    routines.
    
    Whenever gspawn() detects consoleless environment (and qemu-ga is running
    in such environment as Win32 service), it chooses helper with main()
    instead of WinMain. It is done by name, e.g.
    gspawn-win32-helper-console.exe vs gspawn-win32-helper.exe
    
    Running console-aware application like any win32 console apps from main()
    crt initalized process results in redirection of stdout to console created
    in crt startup instead of parent-provided handle connected to subprocess
    pipe. Thus, stdout/stderr redirection do not work correctly.
    
    The patch makes WinMain()'s version of helper be used as the only helper
    shipped with qemu-ga package. Using only win32 helper ensures console
    is created before any redirection and fixes stdout/stderr redirection
    issue.
    
    Signed-off-by: default avatarYuri Pudgorodskiy <yur@virtuozzo.com>
    Signed-off-by: default avatarDenis V. Lunev <den@openvz.org>
    CC: Michael Roth <mdroth@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Roth <mdroth@linux.vnet.ibm.com>
    27559c21
    qga: Workaround for console redirection from non-interactive qemu-ga service
    Yuri Pudgorodskiy authored
    
    
    mingw-glib uses helper process to assist gspawn() api. There are two
    versions of helpers, one with main() and another with WinMain() startup
    routines.
    
    Whenever gspawn() detects consoleless environment (and qemu-ga is running
    in such environment as Win32 service), it chooses helper with main()
    instead of WinMain. It is done by name, e.g.
    gspawn-win32-helper-console.exe vs gspawn-win32-helper.exe
    
    Running console-aware application like any win32 console apps from main()
    crt initalized process results in redirection of stdout to console created
    in crt startup instead of parent-provided handle connected to subprocess
    pipe. Thus, stdout/stderr redirection do not work correctly.
    
    The patch makes WinMain()'s version of helper be used as the only helper
    shipped with qemu-ga package. Using only win32 helper ensures console
    is created before any redirection and fixes stdout/stderr redirection
    issue.
    
    Signed-off-by: default avatarYuri Pudgorodskiy <yur@virtuozzo.com>
    Signed-off-by: default avatarDenis V. Lunev <den@openvz.org>
    CC: Michael Roth <mdroth@linux.vnet.ibm.com>
    Signed-off-by: default avatarMichael Roth <mdroth@linux.vnet.ibm.com>
Loading