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