]> git.ipfire.org Git - thirdparty/systemd.git/commit
ask-password: ask for passphrases not only on the first console of /dev/console 3247/head
authorWerner Fink <werner@suse.de>
Wed, 18 Nov 2015 11:28:30 +0000 (12:28 +0100)
committerFranck Bui <fbui@suse.com>
Tue, 24 May 2016 09:57:27 +0000 (11:57 +0200)
commit6af621248f2255f9ce50b0bafdde475305dc4e57
treed766a8a616f8126fc9fa828f5a73e8e57bcbb487
parent2099b3e9931eea8962cf7a97493abf9361cc6366
ask-password: ask for passphrases not only on the first console of /dev/console

but also on all other consoles.  This does help on e.g. mainframes
where often a serial console together with other consoles are
used.  Even rack based servers attachted to both a serial console
as well as having a virtual console do sometimes miss a connected
monitor.

To be able to ask on all terminal devices of /dev/console the devices
are collected. If more than one device are found, then on each of the
terminals a inquiring task for passphrase is forked and do not return
to the caller.

Every task has its own session and its own controlling terminal.
If one of the tasks does handle a password, the remaining tasks
will be terminated.

Also let contradictory options on the command of
systemd-tty-ask-password-agent fail.

Spwan for each device of the system console /dev/console a own process.
Replace the system call wait() with with system call waitid().
Use SIGTERM instead of SIGHUP to get unresponsive childs down.

Port the collect_consoles() function forward to a pulbic and strv
based function "get_kernel_consoles()" in terminal-util.c and use this
in tty-ask-password-agent.c.
src/basic/terminal-util.c
src/basic/terminal-util.h
src/tty-ask-password-agent/tty-ask-password-agent.c