This is the latest reincarnation of this patch series:
https://www.redhat.com/archives/libvir-list/2011-July/msg01717.html
In the previous version, I had created a new subelement of <graphics>,
called <listen>, and placed all listen address and port attributes
there. After discussion on the list and in IRC with Dan Berrange and
Eric Blake, I became convinced that was overdoing things, and that
really only the address or network name should be in the <listen>
element, but that port/tlsPort/autoport should stay put.
This version removes all changes to port-related attributes, paring it
down to just the listen address (and the new listen network)
attribute. This greatly simplifies the patch, so new review of it
should be easier.
Based on Eric's review, the nwe version tries to be more concise about
what is accepted, what is ignored, and what is rejected in the XML,
both by the parser and by the RNG. (since there is less to deal with,
this is also easier.)
Having a single port value but multiple addresses does create some
potential future restrictions, which we can deal with an eliminate
later if they become problematic. In particular, each graphics device
will have only a single port, but could have multiple listen
addresses; in this case, all the listen addresses would have to listen
on the same port. (This isn't a problem right now, because all of our
drivers can only listen on a single address anyway).
(Note to Eric: I did consider putting the switch to helper functions
into its own patch, but after removing all the ports from <listen>,
the number of helper functions (and thus the number of changes created
by switching to using them, has been reduced considerably, so the gain
wouldn't be as much. (also, it's very late, and I'd like to get some
sleep tonight :-)