David Jaša píše v Pá 15. 06. 2012 v 15:10 +0200: > Daniel P. Berrange píše v Pá 15. 06. 2012 v 11:54 +0100: > > On Fri, Jun 15, 2012 at 12:44:04PM +0200, Gerd Hoffmann wrote: > > > On 06/15/12 12:00, Daniel P. Berrange wrote: > > > > On Fri, Jun 15, 2012 at 11:48:28AM +0200, Gerd Hoffmann wrote: > > > >> Hi, > > > >> > > > >>> * new spice-server feature: add option to bind to a selected interface > > > >>> regardless of its addresses > > > >> > > > >> How does that work? > > > > > > > > I presume the client app would request listen=eth0, and the QEMU > > > > would have to call getifaddrs() to determine what IP addresses > > > > currently correspond to eth0. > > > > > > Ah, so there isn't a direct way I'm not aware of, you still bind to a > > > specific ip address (or multiple), just specified in a different way ;) > > > > > > Note that supporting this isn't going to work with a single listening > > > socket. Having ipv6 sockets accept ipv4 connects too works for wildcard > > > sockets only. If you want listening on all ip{v4,v6} addresses of an > > > interface you'll need a listening socket for each. > > > > Yeah, I'm almost certain you'll need to have multiple listening sockets > > for this to work > > > > Daniel > > Well, I've checked what my local dnsmasq does and it's doing precisely > what you say: > tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 29426/dnsmasq > tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 29426/dnsmasq > tcp 0 0 ::1:53 :::* LISTEN 29426/dnsmasq > tcp 0 0 fe80::4c03:d0ff:fec2:aa7:53 :::* LISTEN 29426/dnsmasq > > In other words, dual-socket won't make dual-stack for selected interface > possible without implementing > https://bugzilla.redhat.com/show_bug.cgi?id=787256 > anyway. :( > > David > Scratch that. After some more research, I found this in socket (7): SO_BINDTODEVICE Bind this socket to a particular device like "eth0", as speci- fied in the passed interface name. If the name is an empty string or the option length is zero, the socket device binding is removed. The passed option is a variable-length null-termi- nated interface name string with the maximum size of IFNAMSIZ. If a socket is bound to an interface, only packets received from that particular interface are processed by the socket. Note that this only works for some socket types, particularly AF_INET sockets. It is not supported for packet sockets (use normal bind(8) there) So using wildcard address and this socket option should be the least-effort way to support dual-stack display networks if I get it right... David -- David Jaša, RHCE SPICE QE based in Brno GPG Key: 22C33E24 Fingerprint: 513A 060B D1B4 2A72 7F0D 0278 B125 CD00 22C3 3E24 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list