On Tue, Jul 05, 2011 at 01:07:45PM +0200, Matthias Bolte wrote: > 2011/7/4 Daniel P. Berrange <berrange@xxxxxxxxxx>: > > * daemon/remote.c: Server side dispatcher > > * src/remote/remote_driver.c: Client side dispatcher > > * src/remote/qemu_protocol.x: Wire protocol definition > > --- > > daemon/remote.c | 41 +++++++++++++++++++++++++++++++++++++++++ > > src/remote/qemu_protocol.x | 13 ++++++++++++- > > src/remote/remote_driver.c | 30 ++++++++++++++++++++++++++++++ > > 3 files changed, 83 insertions(+), 1 deletions(-) > > > > diff --git a/daemon/remote.c b/daemon/remote.c > > index 2889908..85fc978 100644 > > --- a/daemon/remote.c > > +++ b/daemon/remote.c > > @@ -2645,6 +2645,47 @@ cleanup: > > > > > > static int > > +qemuDispatchDomainAttach(virNetServerPtr server ATTRIBUTE_UNUSED, > > + virNetServerClientPtr client ATTRIBUTE_UNUSED, > > + virNetMessageHeaderPtr hdr ATTRIBUTE_UNUSED, > > + virNetMessageErrorPtr rerr, > > + qemu_domain_attach_args *args, > > + qemu_domain_attach_ret *ret) > > +{ > > + virDomainPtr dom = NULL; > > + int rv = -1; > > + struct daemonClientPrivate *priv = > > + virNetServerClientGetPrivateData(client); > > + > > + if (!priv->conn) { > > + virNetError(VIR_ERR_INTERNAL_ERROR, "%s", _("connection not open")); > > + goto cleanup; > > + } > > + > > + if (!(dom = virDomainQemuAttach(priv->conn, > > + args->pid, > > + args->flags))) > > + goto cleanup; > > + > > + make_nonnull_domain(&ret->dom, dom); > > + > > + rv = 0; > > + > > +cleanup: > > + if (rv < 0) > > + virNetMessageSaveError(rerr); > > + if (dom) > > + virDomainFree(dom); > > + return rv; > > +} > > The generator should be able to deal with this, did you try? I couldn't, but it turns out the changes were fairly easy. > > +#include "remote_dispatch_bodies.h" > > +#include "qemu_dispatch_bodies.h" > > + > > + > > +>>>>>>> Define remote wire protocol & impls for virDomainQemuAttach > > The includes and this line looks bogus, probably a rebase problem. Yep, totally bogus line. > > > +static virDomainPtr > > +remoteQemuDomainAttach(virConnectPtr conn, unsigned long long pid, unsigned int flags) > > +{ > > + virDomainPtr rv = NULL; > > + struct private_data *priv = conn->privateData; > > + qemu_domain_attach_args args; > > + qemu_domain_attach_ret ret; > > + > > + remoteDriverLock(priv); > > + > > + args.pid = pid; > > + args.flags = flags; > > + > > + memset(&ret, 0, sizeof ret); > > + > > + if (call(conn, priv, REMOTE_CALL_QEMU, QEMU_PROC_DOMAIN_ATTACH, > > + (xdrproc_t)xdr_qemu_domain_attach_args, (char *)&args, > > + (xdrproc_t)xdr_qemu_domain_attach_ret, (char *)&ret) == -1) > > + goto done; > > + > > + rv = get_nonnull_domain(conn, ret.dom); > > + xdr_free((xdrproc_t)xdr_qemu_domain_attach_ret, (char *)&ret); > > + > > +done: > > + remoteDriverUnlock(priv); > > + return rv; > > +} > > The generator should also be able to deal with this one. It did after some changes I'm reposting this one patch since its the only one that needed non-trivial fixups Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list