On Wed, Sep 19, 2007 at 02:51:42PM +0100, Richard W.M. Jones wrote: > Daniel P. Berrange wrote: > >On Wed, Sep 19, 2007 at 02:08:33PM +0100, Richard W.M. Jones wrote: > >>>>/* Must not overlap with virDrvOpenFlags */ > >>>>enum virDrvOpenRemoteFlags { > >>>> VIR_DRV_OPEN_REMOTE_RO = (1 << 0), > >>>>- VIR_DRV_OPEN_REMOTE_UNIX = (1 << 1), > >>>>- VIR_DRV_OPEN_REMOTE_USER = (1 << 2), > >>>>- VIR_DRV_OPEN_REMOTE_AUTOSTART = (1 << 3), > >>>>+ VIR_DRV_OPEN_REMOTE_USER = (1 << 1), > >>>>+ VIR_DRV_OPEN_REMOTE_AUTOSTART = (1 << 2), > >>>>}; > >>> I'm just a bit worried about changing those if they end up on the wire > >>>in some ways. If that's the case then just keep he enum as-is. > >>I don't really understand the purpose of these flags. They _do_ go over > >>the wire in both the current and proposed implementation, but the remote > >>end doesn't interpret them (unless I'm missing something ...?) > > > >These flags are only used by remote_internal.c between the methods > >remoteOpen, > >remoteNetworkOpen and the doRemoteOpen call. They don't go over the wire. > > > >NB, not to be confused with 'enum virDrvOpenFlags' which does go over the > >wire. > > Are you sure they don't go over the wire? My reading of doRemoteOpen > suggests that they do: > > static int > doRemoteOpen (virConnectPtr conn, struct private_data *priv, const char > *uri_str, int flags) > { > // bunch of code which reads 'flags' but never modifies it > > /* Finally we can call the remote side's open function. */ > remote_open_args args = { &name, flags }; > > if (call (conn, priv, 1, REMOTE_PROC_OPEN, > (xdrproc_t) xdr_remote_open_args, (char *) &args, > (xdrproc_t) xdr_void, (char *) NULL) == -1) > goto failed; > > and the 'call' function just serialises whatever is in the args array. > But at this point flags could contain VIR_DRV_OPEN_REMOTE_* flags. > > Unless I'm reading this code wrong ... Yep that's a bug - we're passing bogus data to the server. Fortunately its not checking any flag except _RO, but I'll fix this & repost. Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list