[Libvir] PATCH: Allow remote driver to handle any connection URI

Richard W.M. Jones rjones at redhat.com
Wed Sep 19 13:51:42 UTC 2007


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 ...

I checked at the other side and it doesn't use any flag except the 
standard RO flag, so we should be OK anyhow.

Rich.

-- 
Emerging Technologies, Red Hat - http://et.redhat.com/~rjones/
Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod
Street, Windsor, Berkshire, SL4 1TE, United Kingdom.  Registered in
England and Wales under Company Registration No. 03798903
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 3237 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20070919/8577b442/attachment-0001.bin>


More information about the libvir-list mailing list