On 12/07/2011 11:08 AM, Peter Krempa wrote: > This patch adds a set of functions used in creating console streams for > domains using PTYs and ensures mutualy exculsive access to the PTYs. s/mutualy exculsive/mutually exclusive/ > > If mutualy exclusive access is not used, two clients may open the same s/mutualy/mutually/ > console, which results into corruption on both clients as both of them s/into/in/ > race to read data from the PTY. > > Two approaches are used to ensure this: > 1) Internal data structure holding open PTYs. > This is used internaly and enables the user to forcibly s/internaly/internally/ > terminate another console connection eg. when somebody leaves > the console open on another host. > > 2) UUCP style lock files: > This uses UUCP lock files according to the FHS > ( http://www.pathname.com/fhs/pub/fhs-2.3.html#VARLOCKLOCKFILES ) Looks like I've got some reading to do. > to check if other programs (like minicom) are not using the pty > device of the console. > > This feature is disabled by default and may be enabled using > configure parameter > --with-console-lock-files=/path/to/lock/file/directory > or --with-console-lock-files=auto (which tries to infer the > location from OS used (currently only linux). > > On usual linux systems, normal users may not write to the > /var/lock directory containing the locks. This poses problems > while in session mode. If the current user has no access to the > lockfile directory, check for presence of the file is still > done, but no lock file is created. This does NOT result into an > error. > > * configure.ac > - add option to enable UUCP style PTY file locks > * src/Makefile.am > - add new files to be built with util module > * src/libvirt_private.syms > - add private symbol definition > * src/util/domain_safe_console.c > - implementation of safe console handling > * src/util/domain_safe_console.h > - header files > --- > configure.ac | 37 +++- > src/Makefile.am | 5 +- > src/libvirt_private.syms | 6 + > src/util/domain_safe_console.c | 399 ++++++++++++++++++++++++++++++++++++++++ > src/util/domain_safe_console.h | 28 +++ > 5 files changed, 466 insertions(+), 9 deletions(-) > create mode 100644 src/util/domain_safe_console.c > create mode 100644 src/util/domain_safe_console.h I've run out of time to finish my review of this today, but the idea seems interesting. -- Eric Blake eblake@xxxxxxxxxx +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list