migrate: insert required request structure padding

Further testing reveals we need some additional padding on the request
passed to libvirt when performing migrations. I believe this is due to
the structure alignment normally provided automatically by the compiler.

In testing, this fixes an error I was seeing: "Unable to decode message
paylaod", returned from libvirt when performing migrations.
This commit is contained in:
Ben LeMasurier 2016-09-28 11:07:03 -06:00
parent 128bc7d448
commit 73ac0f5012
No known key found for this signature in database
GPG Key ID: 248D430AE8E74189

View File

@ -277,12 +277,14 @@ func (l *Libvirt) Migrate(dom string, dest string, flags MigrateFlags) error {
// For now, using the same zero'd values as done by virsh will be Good Enough. // For now, using the same zero'd values as done by virsh will be Good Enough.
payload := struct { payload := struct {
Domain Domain Domain Domain
Padding [4]byte
DestinationURI string DestinationURI string
RemoteParameters uint32 RemoteParameters uint32
CookieIn uint32 CookieIn uint32
Flags MigrateFlags Flags MigrateFlags
}{ }{
Domain: *d, Domain: *d,
Padding: [4]byte{0x0, 0x0, 0x0, 0x1},
DestinationURI: dest, DestinationURI: dest,
RemoteParameters: 0, RemoteParameters: 0,
CookieIn: 0, CookieIn: 0,