[Libvir] PATCH: 5/16: remote driver client
Daniel P. Berrange
berrange at redhat.com
Fri Feb 15 15:12:32 UTC 2008
On Fri, Feb 15, 2008 at 10:10:24AM -0500, Daniel Veillard wrote:
> On Tue, Feb 12, 2008 at 04:33:03AM +0000, Daniel P. Berrange wrote:
> > This patch adds support for the storage APIs to the remote driver
> > client end. As with the network driver, things are configured such
> > that all virtualization drivers will end up delegating to the remote
> > driver for storage APIs. There's not much interesting to say about
> > this patch since it just follows pattern for the existing APis.
>
> [...]
> > + if (conn &&
> > + conn->driver &&
> > + strcmp (conn->driver->name, "remote") == 0) {
>
> aren't we supposed to use some STREQU macros for lisibility ?
>
> > + /* If we're here, the remote driver is already
> > + * in use due to a) a QEMU uri, or b) a remote
> > + * URI. So we can re-use existing connection
> > + */
> > + conn->storagePrivateData = conn->privateData;
> > + return VIR_DRV_OPEN_SUCCESS;
> > + } else if (conn->networkDriver &&
> > + strcmp (conn->networkDriver->name, "remote") == 0) {
>
> same
>
> > + conn->storagePrivateData = conn->networkPrivateData;
> > + ((struct private_data *)conn->storagePrivateData)->localUses++;
> > + return VIR_DRV_OPEN_SUCCESS;
> > + } else {
> > + /* Using a non-remote driver, so we need to open a
> > + * new connection for network APIs, forcing it to
> > + * use the UNIX transport. This handles Xen driver
> > + * which doesn't have its own impl of the network APIs.
> > + */
> > + struct private_data *priv = malloc (sizeof(struct private_data));
> > + int ret, rflags = 0;
> > + if (!priv) {
> > + error (NULL, VIR_ERR_NO_MEMORY, _("struct private_data"));
> > + return VIR_DRV_OPEN_ERROR;
> > + }
> > + if (flags & VIR_CONNECT_RO)
> > + rflags |= VIR_DRV_OPEN_REMOTE_RO;
> > + rflags |= VIR_DRV_OPEN_REMOTE_UNIX;
> > +
> > + memset(priv, 0, sizeof(struct private_data));
>
> hum, and use calloc to avoid malloc/memset ?
Yep, those are all copy+paste from the equivalent network APIs. I'll
fix these, and the originals at the same time.
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 -=|
More information about the libvir-list
mailing list