From nobody Mon Feb 9 08:56:26 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1589371109; cv=none; d=zohomail.com; s=zohoarc; b=EoKytlOMX7RUiuqXbd4zBd/T4TJs6haIkjsAU/oXzEHEEI6FJEBU9Z6FVI0/hM/DHDphtVDY9TGDfDO19BtUHmVmUNPxWjxxlKXyjWCyDN/yUK0aQQQCm0w/dS3Md3KMo3ADLK4OGZms9Iyhk27FyUHSbd4Es6cDCKu3baV0dB0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1589371109; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=VwRP5wvJXmCzMQ0HlK0i7Bnq6nr0pgwjXkDYx6/goOI=; b=XqYzt2Nm1TVFK9pnSbnqixzOc19lW3ZRMyqnqltaA4Yd0jh8RuM37L/BI8io9rbEZwOG7m/8RZsdIFp3YkU33zZuiezJXP+2v4gMqwhWnoEVANQQZyQeXpJY0OzGqUYG38dH7A12X+A6oPEQAafeIuXid0kZI+DcN0yNhBzC7tE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 1589371109893578.7310980069115; Wed, 13 May 2020 04:58:29 -0700 (PDT) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-75-xnVmi2lyN022wK-Rq3PQmw-1; Wed, 13 May 2020 07:58:26 -0400 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 38ADF108BD10; Wed, 13 May 2020 11:58:20 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 148777D95A; Wed, 13 May 2020 11:58:20 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id D5A401809563; Wed, 13 May 2020 11:58:19 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.rdu2.redhat.com [10.11.54.6]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 04DBwFJe015973 for ; Wed, 13 May 2020 07:58:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id E16CC2166BA0; Wed, 13 May 2020 11:58:14 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast03.extmail.prod.ext.rdu2.redhat.com [10.11.55.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id DBE7F2166B27 for ; Wed, 13 May 2020 11:58:14 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id B2D02811E77 for ; Wed, 13 May 2020 11:58:14 +0000 (UTC) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-279-bjdz1__uO-6MD3JdUxlAUA-1; Wed, 13 May 2020 07:58:11 -0400 Received: by mail-wm1-f42.google.com with SMTP id y24so28194117wma.4 for ; Wed, 13 May 2020 04:58:11 -0700 (PDT) Received: from localhost.localdomain (public-gprs367127.centertel.pl. [37.47.65.88]) by smtp.gmail.com with ESMTPSA id l1sm27838422wrc.24.2020.05.13.04.58.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 13 May 2020 04:58:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589371108; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=VwRP5wvJXmCzMQ0HlK0i7Bnq6nr0pgwjXkDYx6/goOI=; b=L4SCFSO5fMFFd1Fl3LnEkt6H7Kz2zB4uw99X3Y+KXnKMaFmeYxiSiYFZDsR5S/VIKMAhUc eUqQ/AR9yFpoza+ZyjaNcSU5yIZ70CJN8ctTrUJaHdGOSuywfTvd2FGQTbYYGlYBdvN05/ 85YsMaNgoJs1OXIHyqI4quMVxaSEA7s= X-MC-Unique: xnVmi2lyN022wK-Rq3PQmw-1 X-MC-Unique: bjdz1__uO-6MD3JdUxlAUA-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=VwRP5wvJXmCzMQ0HlK0i7Bnq6nr0pgwjXkDYx6/goOI=; b=Sek27UmAIzXhEnhlSheWxzbkMQNNCGBrCt34/QRTRe+NP+Nft5PgdAe1v65Zf5a3ld VBh8IpjXr2gb3kXQqMQs4meFHfW2qRx3UCIRYqcFnk4IVyi08Iois39bWvPsqCIiP/3d EaYkkV5dEBRhinC+63/Ya135ORCktDNJrJV1NFHhwwFcXdlbUouLA8C3ngKqn1rVLnrv zF1QUd1AjVZwlyzynFEpfv6qRaN/xlf+hCO5JOe9n5HsgtwepTC1BsYBtrWCVtIztw2R RD0tSXkDfKjuMa+8J6tB4QyBEGKfufc/p8dsQha8BuNyiqqwZCFx71Gr0mMKZ2lGYaZX XVOw== X-Gm-Message-State: AGi0PuZxAI9qPrCDxtdlwHq2hboxLmYXY8Ul8HDP0R19QiN1q04BfoCY chV6GqIkWvSlVDBJBo7oYjCVMEqX X-Google-Smtp-Source: APiQypIS69RXDheZGEjzcn/gZKYIAnACxaSx7b1WPJDYJTG6p0ABWIZ3K9t9WIpCthBaIYjoh7/W2A== X-Received: by 2002:a05:600c:21c1:: with SMTP id x1mr13055195wmj.173.1589371089371; Wed, 13 May 2020 04:58:09 -0700 (PDT) From: Rafael Fonseca To: libvirt-list@redhat.com Subject: [PATCH 06/40] rpc: convert virNetServerProgram to GObject Date: Wed, 13 May 2020 13:56:50 +0200 Message-Id: <20200513115724.157687-7-r4f4rfs@gmail.com> In-Reply-To: <20200513115724.157687-1-r4f4rfs@gmail.com> References: <20200513115724.157687-1-r4f4rfs@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.78 on 10.11.54.6 X-loop: libvir-list@redhat.com Cc: Rafael Fonseca X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" Signed-off-by: Rafael Fonseca --- src/locking/lock_daemon.c | 28 ++++++---------- src/logging/log_daemon.c | 28 ++++++---------- src/lxc/lxc_controller.c | 11 +++--- src/remote/remote_daemon.c | 52 ++++++++++------------------- src/remote/remote_daemon_dispatch.c | 18 +++++----- src/remote/remote_daemon_stream.c | 4 +-- src/rpc/virnetserver.c | 14 ++++---- src/rpc/virnetserverprogram.c | 30 +++++------------ src/rpc/virnetserverprogram.h | 10 ++++-- 9 files changed, 77 insertions(+), 118 deletions(-) diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c index b0cd89375b..c4faf3349d 100644 --- a/src/locking/lock_daemon.c +++ b/src/locking/lock_daemon.c @@ -859,8 +859,8 @@ virLockDaemonUsage(const char *argv0, bool privileged) int main(int argc, char **argv) { virNetServerPtr lockSrv =3D NULL; virNetServerPtr adminSrv =3D NULL; - virNetServerProgramPtr lockProgram =3D NULL; - virNetServerProgramPtr adminProgram =3D NULL; + g_autoptr(virNetServerProgram) lockProgram =3D NULL; + g_autoptr(virNetServerProgram) adminProgram =3D NULL; char *remote_config_file =3D NULL; int statuswrite =3D -1; int ret =3D 1; @@ -1133,13 +1133,10 @@ int main(int argc, char **argv) { goto cleanup; } =20 - if (!(lockProgram =3D virNetServerProgramNew(VIR_LOCK_SPACE_PROTOCOL_P= ROGRAM, - VIR_LOCK_SPACE_PROTOCOL_PRO= GRAM_VERSION, - virLockSpaceProtocolProcs, - virLockSpaceProtocolNProcs)= )) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + lockProgram =3D virNetServerProgramNew(VIR_LOCK_SPACE_PROTOCOL_PROGRAM, + VIR_LOCK_SPACE_PROTOCOL_PROGRAM_V= ERSION, + virLockSpaceProtocolProcs, + virLockSpaceProtocolNProcs); =20 if (virNetServerAddProgram(lockSrv, lockProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; @@ -1147,13 +1144,10 @@ int main(int argc, char **argv) { } =20 if (adminSrv !=3D NULL) { - if (!(adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, - ADMIN_PROTOCOL_VERSION, - adminProcs, - adminNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, + ADMIN_PROTOCOL_VERSION, + adminProcs, + adminNProcs); if (virNetServerAddProgram(adminSrv, adminProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; @@ -1190,8 +1184,6 @@ int main(int argc, char **argv) { ret =3D 0; =20 cleanup: - virObjectUnref(lockProgram); - virObjectUnref(adminProgram); virObjectUnref(lockSrv); virObjectUnref(adminSrv); virLockDaemonFree(lockDaemon); diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c index 7017db2dcc..40cfae9ae8 100644 --- a/src/logging/log_daemon.c +++ b/src/logging/log_daemon.c @@ -640,8 +640,8 @@ virLogDaemonUsage(const char *argv0, bool privileged) int main(int argc, char **argv) { virNetServerPtr logSrv =3D NULL; virNetServerPtr adminSrv =3D NULL; - virNetServerProgramPtr logProgram =3D NULL; - virNetServerProgramPtr adminProgram =3D NULL; + g_autoptr(virNetServerProgram) logProgram =3D NULL; + g_autoptr(virNetServerProgram) adminProgram =3D NULL; char *remote_config_file =3D NULL; int statuswrite =3D -1; int ret =3D 1; @@ -915,26 +915,20 @@ int main(int argc, char **argv) { goto cleanup; } =20 - if (!(logProgram =3D virNetServerProgramNew(VIR_LOG_MANAGER_PROTOCOL_P= ROGRAM, - VIR_LOG_MANAGER_PROTOCOL_PRO= GRAM_VERSION, - virLogManagerProtocolProcs, - virLogManagerProtocolNProcs)= )) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + logProgram =3D virNetServerProgramNew(VIR_LOG_MANAGER_PROTOCOL_PROGRAM, + VIR_LOG_MANAGER_PROTOCOL_PROGRAM_V= ERSION, + virLogManagerProtocolProcs, + virLogManagerProtocolNProcs); if (virNetServerAddProgram(logSrv, logProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; } =20 if (adminSrv !=3D NULL) { - if (!(adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, - ADMIN_PROTOCOL_VERSION, - adminProcs, - adminNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, + ADMIN_PROTOCOL_VERSION, + adminProcs, + adminNProcs); if (virNetServerAddProgram(adminSrv, adminProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; @@ -970,8 +964,6 @@ int main(int argc, char **argv) { ret =3D 0; =20 cleanup: - virObjectUnref(logProgram); - virObjectUnref(adminProgram); virObjectUnref(logSrv); virObjectUnref(adminSrv); virLogDaemonFree(logDaemon); diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c index 43f75d639a..f078c1c425 100644 --- a/src/lxc/lxc_controller.c +++ b/src/lxc/lxc_controller.c @@ -316,6 +316,7 @@ static void virLXCControllerFree(virLXCControllerPtr ct= rl) VIR_FREE(ctrl->nsFDs); virCgroupFree(&ctrl->cgroup); =20 + g_clear_object(&ctrl->prog); /* This must always be the last thing to be closed */ VIR_FORCE_CLOSE(ctrl->handshakeFd); VIR_FREE(ctrl); @@ -991,11 +992,10 @@ static int virLXCControllerSetupServer(virLXCControll= erPtr ctrl) virObjectUnref(svc); svc =3D NULL; =20 - if (!(ctrl->prog =3D virNetServerProgramNew(VIR_LXC_MONITOR_PROGRAM, - VIR_LXC_MONITOR_PROGRAM_VERS= ION, - virLXCMonitorProcs, - virLXCMonitorNProcs))) - goto error; + ctrl->prog =3D virNetServerProgramNew(VIR_LXC_MONITOR_PROGRAM, + VIR_LXC_MONITOR_PROGRAM_VERSION, + virLXCMonitorProcs, + virLXCMonitorNProcs); =20 if (!(ctrl->daemon =3D virNetDaemonNew()) || virNetDaemonAddServer(ctrl->daemon, srv) < 0) @@ -1007,6 +1007,7 @@ static int virLXCControllerSetupServer(virLXCControll= erPtr ctrl) =20 error: VIR_FREE(sockpath); + g_clear_object(&ctrl->prog); virObjectUnref(srv); virObjectUnref(ctrl->daemon); ctrl->daemon =3D NULL; diff --git a/src/remote/remote_daemon.c b/src/remote/remote_daemon.c index 1aa9bfc0d2..e015034333 100644 --- a/src/remote/remote_daemon.c +++ b/src/remote/remote_daemon.c @@ -760,8 +760,8 @@ int main(int argc, char **argv) { virNetDaemonPtr dmn =3D NULL; virNetServerPtr srv =3D NULL; virNetServerPtr srvAdm =3D NULL; - virNetServerProgramPtr adminProgram =3D NULL; - virNetServerProgramPtr lxcProgram =3D NULL; + g_autoptr(virNetServerProgram) adminProgram =3D NULL; + g_autoptr(virNetServerProgram) lxcProgram =3D NULL; char *remote_config_file =3D NULL; int statuswrite =3D -1; int ret =3D 1; @@ -1038,37 +1038,28 @@ int main(int argc, char **argv) { remoteProcs[REMOTE_PROC_AUTH_SASL_STEP].needAuth =3D false; remoteProcs[REMOTE_PROC_AUTH_SASL_START].needAuth =3D false; remoteProcs[REMOTE_PROC_AUTH_POLKIT].needAuth =3D false; - if (!(remoteProgram =3D virNetServerProgramNew(REMOTE_PROGRAM, - REMOTE_PROTOCOL_VERSION, - remoteProcs, - remoteNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + remoteProgram =3D virNetServerProgramNew(REMOTE_PROGRAM, + REMOTE_PROTOCOL_VERSION, + remoteProcs, + remoteNProcs); if (virNetServerAddProgram(srv, remoteProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; } =20 - if (!(lxcProgram =3D virNetServerProgramNew(LXC_PROGRAM, - LXC_PROTOCOL_VERSION, - lxcProcs, - lxcNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + lxcProgram =3D virNetServerProgramNew(LXC_PROGRAM, + LXC_PROTOCOL_VERSION, + lxcProcs, + lxcNProcs); if (virNetServerAddProgram(srv, lxcProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; } =20 - if (!(qemuProgram =3D virNetServerProgramNew(QEMU_PROGRAM, - QEMU_PROTOCOL_VERSION, - qemuProcs, - qemuNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + qemuProgram =3D virNetServerProgramNew(QEMU_PROGRAM, + QEMU_PROTOCOL_VERSION, + qemuProcs, + qemuNProcs); if (virNetServerAddProgram(srv, qemuProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; @@ -1095,13 +1086,10 @@ int main(int argc, char **argv) { goto cleanup; } =20 - if (!(adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, - ADMIN_PROTOCOL_VERSION, - adminProcs, - adminNProcs))) { - ret =3D VIR_DAEMON_ERR_INIT; - goto cleanup; - } + adminProgram =3D virNetServerProgramNew(ADMIN_PROGRAM, + ADMIN_PROTOCOL_VERSION, + adminProcs, + adminNProcs); if (virNetServerAddProgram(srvAdm, adminProgram) < 0) { ret =3D VIR_DAEMON_ERR_INIT; goto cleanup; @@ -1213,11 +1201,7 @@ int main(int argc, char **argv) { virStateCleanup(); } =20 - virObjectUnref(adminProgram); virObjectUnref(srvAdm); - virObjectUnref(qemuProgram); - virObjectUnref(lxcProgram); - virObjectUnref(remoteProgram); virObjectUnref(srv); virObjectUnref(dmn); =20 diff --git a/src/remote/remote_daemon_dispatch.c b/src/remote/remote_daemon= _dispatch.c index 6f67d2fb30..3b016636e0 100644 --- a/src/remote/remote_daemon_dispatch.c +++ b/src/remote/remote_daemon_dispatch.c @@ -150,7 +150,7 @@ remoteEventCallbackFree(void *opaque) daemonClientEventCallbackPtr callback =3D opaque; if (!callback) return; - virObjectUnref(callback->program); + g_clear_object(&callback->program); virObjectUnref(callback->client); VIR_FREE(callback); } @@ -4255,7 +4255,7 @@ remoteDispatchConnectDomainEventRegister(virNetServer= Ptr server G_GNUC_UNUSED, if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D VIR_DOMAIN_EVENT_ID_LIFECYCLE; callback->callbackID =3D -1; callback->legacy =3D true; @@ -4484,7 +4484,7 @@ remoteDispatchConnectDomainEventRegisterAny(virNetSer= verPtr server G_GNUC_UNUSED if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; callback->legacy =3D true; @@ -4560,7 +4560,7 @@ remoteDispatchConnectDomainEventCallbackRegisterAny(v= irNetServerPtr server G_GNU if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6043,7 +6043,7 @@ remoteDispatchConnectNetworkEventRegisterAny(virNetSe= rverPtr server G_GNUC_UNUSE if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6164,7 +6164,7 @@ remoteDispatchConnectStoragePoolEventRegisterAny(virN= etServerPtr server G_GNUC_U if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6284,7 +6284,7 @@ remoteDispatchConnectNodeDeviceEventRegisterAny(virNe= tServerPtr server G_GNUC_UN if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6404,7 +6404,7 @@ remoteDispatchConnectSecretEventRegisterAny(virNetSer= verPtr server G_GNUC_UNUSED if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(remoteProgram); + callback->program =3D g_object_ref(remoteProgram); callback->eventID =3D args->eventID; callback->callbackID =3D -1; ref =3D callback; @@ -6519,7 +6519,7 @@ qemuDispatchConnectDomainMonitorEventRegister(virNetS= erverPtr server G_GNUC_UNUS if (VIR_ALLOC(callback) < 0) goto cleanup; callback->client =3D virObjectRef(client); - callback->program =3D virObjectRef(qemuProgram); + callback->program =3D g_object_ref(qemuProgram); callback->eventID =3D -1; callback->callbackID =3D -1; ref =3D callback; diff --git a/src/remote/remote_daemon_stream.c b/src/remote/remote_daemon_s= tream.c index 73e4d7befb..62bc9e0f5b 100644 --- a/src/remote/remote_daemon_stream.c +++ b/src/remote/remote_daemon_stream.c @@ -367,7 +367,7 @@ daemonCreateClientStream(virNetServerClientPtr client, =20 stream->refs =3D 1; stream->priv =3D priv; - stream->prog =3D virObjectRef(prog); + stream->prog =3D g_object_ref(prog); stream->procedure =3D header->proc; stream->serial =3D header->serial; stream->filterID =3D -1; @@ -399,7 +399,7 @@ int daemonFreeClientStream(virNetServerClientPtr client, VIR_DEBUG("client=3D%p, proc=3D%d, serial=3D%u", client, stream->procedure, stream->serial); =20 - virObjectUnref(stream->prog); + g_clear_object(&stream->prog); =20 msg =3D stream->rx; while (msg) { diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c index e0a23867f6..15be0275e6 100644 --- a/src/rpc/virnetserver.c +++ b/src/rpc/virnetserver.c @@ -154,13 +154,13 @@ static void virNetServerHandleJob(void *jobOpaque, vo= id *opaque) if (virNetServerProcessMsg(srv, job->client, job->prog, job->msg) < 0) goto error; =20 - virObjectUnref(job->prog); + g_clear_object(&job->prog); virObjectUnref(job->client); VIR_FREE(job); return; =20 error: - virObjectUnref(job->prog); + g_clear_object(&job->prog); virNetMessageFree(job->msg); virNetServerClientClose(job->client); virObjectUnref(job->client); @@ -218,14 +218,14 @@ virNetServerDispatchNewMessage(virNetServerClientPtr = client, job->msg =3D msg; =20 if (prog) { - job->prog =3D virObjectRef(prog); + job->prog =3D g_object_ref(prog); priority =3D virNetServerProgramGetPriority(prog, msg->header.= proc); } =20 if (virThreadPoolSendJob(srv->workers, priority, job) < 0) { virObjectUnref(client); VIR_FREE(job); - virObjectUnref(prog); + g_clear_object(&prog); goto error; } } else { @@ -826,7 +826,7 @@ int virNetServerAddProgram(virNetServerPtr srv, if (VIR_EXPAND_N(srv->programs, srv->nprograms, 1) < 0) goto error; =20 - srv->programs[srv->nprograms-1] =3D virObjectRef(prog); + srv->programs[srv->nprograms-1] =3D g_object_ref(prog); =20 virObjectUnlock(srv); return 0; @@ -918,9 +918,7 @@ void virNetServerDispose(void *obj) virObjectUnref(srv->services[i]); VIR_FREE(srv->services); =20 - for (i =3D 0; i < srv->nprograms; i++) - virObjectUnref(srv->programs[i]); - VIR_FREE(srv->programs); + virGObjectListFreeCount(srv->programs, srv->nprograms); =20 for (i =3D 0; i < srv->nclients; i++) virObjectUnref(srv->clients[i]); diff --git a/src/rpc/virnetserverprogram.c b/src/rpc/virnetserverprogram.c index 8df92fb8df..119c9d01c1 100644 --- a/src/rpc/virnetserverprogram.c +++ b/src/rpc/virnetserverprogram.c @@ -35,7 +35,7 @@ VIR_LOG_INIT("rpc.netserverprogram"); =20 struct _virNetServerProgram { - virObject parent; + GObject parent; =20 unsigned program; unsigned version; @@ -44,32 +44,23 @@ struct _virNetServerProgram { }; =20 =20 -static virClassPtr virNetServerProgramClass; -static void virNetServerProgramDispose(void *obj); +G_DEFINE_TYPE(virNetServerProgram, vir_net_server_program, G_TYPE_OBJECT); =20 -static int virNetServerProgramOnceInit(void) +static void vir_net_server_program_init(virNetServerProgram *prog G_GNUC_U= NUSED) { - if (!VIR_CLASS_NEW(virNetServerProgram, virClassForObject())) - return -1; - - return 0; } =20 -VIR_ONCE_GLOBAL_INIT(virNetServerProgram); - +static void vir_net_server_program_class_init(virNetServerProgramClass *kl= ass G_GNUC_UNUSED) +{ +} =20 virNetServerProgramPtr virNetServerProgramNew(unsigned program, unsigned version, virNetServerProgramProcPtr p= rocs, size_t nprocs) { - virNetServerProgramPtr prog; - - if (virNetServerProgramInitialize() < 0) - return NULL; - - if (!(prog =3D virObjectNew(virNetServerProgramClass))) - return NULL; + virNetServerProgramPtr prog =3D + VIR_NET_SERVER_PROGRAM(g_object_new(VIR_TYPE_NET_SERVER_PROGRAM, N= ULL)); =20 prog->program =3D program; prog->version =3D version; @@ -567,8 +558,3 @@ int virNetServerProgramSendStreamHole(virNetServerProgr= amPtr prog, =20 return virNetServerClientSendMessage(client, msg); } - - -void virNetServerProgramDispose(void *obj G_GNUC_UNUSED) -{ -} diff --git a/src/rpc/virnetserverprogram.h b/src/rpc/virnetserverprogram.h index 851bbf0183..bcc10809d4 100644 --- a/src/rpc/virnetserverprogram.h +++ b/src/rpc/virnetserverprogram.h @@ -23,7 +23,8 @@ =20 #include "virnetmessage.h" #include "virnetserverclient.h" -#include "virobject.h" +#include "internal.h" +#include =20 typedef struct _virNetDaemon virNetDaemon; typedef virNetDaemon *virNetDaemonPtr; @@ -31,7 +32,12 @@ typedef virNetDaemon *virNetDaemonPtr; typedef struct _virNetServerService virNetServerService; typedef virNetServerService *virNetServerServicePtr; =20 -typedef struct _virNetServerProgram virNetServerProgram; +#define VIR_TYPE_NET_SERVER_PROGRAM vir_net_server_program_get_type() +G_DECLARE_FINAL_TYPE(virNetServerProgram, + vir_net_server_program, + VIR, + NET_SERVER_PROGRAM, + GObject); typedef virNetServerProgram *virNetServerProgramPtr; =20 typedef struct _virNetServerProgramProc virNetServerProgramProc; --=20 2.26.2