On 9/29/20 5:10 PM, Ján Tomko wrote:
On a Tuesday in 2020, Peter Krempa wrote:
> Move around some code so that we can get rid of the 'cleanup:' label.
>
> Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
> ---
> src/qemu/qemu_migration_cookie.c | 35 ++++++++++++++++----------------
> 1 file changed, 17 insertions(+), 18 deletions(-)
>
> diff --git a/src/qemu/qemu_migration_cookie.c
> b/src/qemu/qemu_migration_cookie.c
> index 124f61e3ea..a04b74f092 100644
> --- a/src/qemu/qemu_migration_cookie.c
> +++ b/src/qemu/qemu_migration_cookie.c
> @@ -280,31 +280,30 @@ qemuMigrationCookieNew(const virDomainDef *def,
> const char *origname)
> {
> qemuMigrationCookiePtr mig = NULL;
> - const char *name;
> + unsigned char localHostUUID[VIR_UUID_BUFLEN];
> + g_autofree char *localHostname = NULL;
>
> - if (VIR_ALLOC(mig) < 0)
> - goto error;
> -
> - if (origname)
> - name = origname;
> - else
> - name = def->name;
> - mig->name = g_strdup(name);
> - memcpy(mig->uuid, def->uuid, VIR_UUID_BUFLEN);
> + if (!(localHostname = virGetHostname()))
> + return NULL;
>
> - if (!(mig->localHostname = virGetHostname()))
> - goto error;
Note that as of:
commit 26d9748ff114a060ee751959d108d062f737f5d9
util: replace gethostname() with g_get_hostname()
the virGetHostname function always g_strdup's something.
Since you mentioned this, g_get_hostname() is horrible API as it caches
the host name on the first run and returns a const char * so there is no
way for callers to reflect on changing hostname. We had to drop it in
qemu-ga, because if qemu-ga was started before network was configured
then hostname change on DHCP wasn't being reflected. Hopefully, it is
not a problem for libvirt because we start after NICs are configured.
And nobody is really changing the hostname once a host is running, or
are they?
# hostname; virsh hostname ; hostname asdf; virsh hostname ; hostname
bart
bart
bart
asdf
Michal