[libvirt] [PATCH v3 06/10] Turn virNetSASLContext and virNetSASLSession into virObject instances
Eric Blake
eblake at redhat.com
Mon Aug 6 17:54:06 UTC 2012
On 08/06/2012 05:53 AM, Daniel P. Berrange wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> Make virNetSASLContext and virNetSASLSession use virObject APIs
> for reference counting
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
> daemon/remote.c | 8 ++--
> src/remote/remote_driver.c | 4 +-
> src/rpc/virnetclient.c | 7 ++-
> src/rpc/virnetsaslcontext.c | 106 ++++++++++++++++++------------------------
> src/rpc/virnetsaslcontext.h | 8 +---
> src/rpc/virnetserverclient.c | 7 ++-
> src/rpc/virnetsocket.c | 7 ++-
> 7 files changed, 61 insertions(+), 86 deletions(-)
Not as dramatic, but still a net reduction.
Fails 'make check', and missing changes to cfg.mk to clean up the cruft.
> +++ b/src/rpc/virnetclient.c
> @@ -497,7 +497,7 @@ void virNetClientFree(virNetClientPtr client)
> virNetSocketFree(client->sock);
> virObjectUnref(client->tls);
> #if HAVE_SASL
> - virNetSASLSessionFree(client->sasl);
> + virObjectUnref(client->sasl);
> #endif
A followup patch could probably remove this #ifdef protection, if
client->sasl exists but is NULL when HAVE_SASL is not present.
> @@ -152,28 +176,11 @@ cleanup:
> }
>
>
> -void virNetSASLContextRef(virNetSASLContextPtr ctxt)
> -{
> - virMutexLock(&ctxt->lock);
> - ctxt->refs++;
> - virMutexUnlock(&ctxt->lock);
> -}
> -
> -void virNetSASLContextFree(virNetSASLContextPtr ctxt)
> +void virNetSASLContextDispose(void *obj)
For consistency with the prototype earlier in the file, I would have
marked this static, but what you have works.
> @@ -186,10 +193,8 @@ virNetSASLSessionPtr virNetSASLSessionNewClient(virNetSASLContextPtr ctxt ATTRIB
> virNetSASLSessionPtr sasl = NULL;
> int err;
>
> - if (VIR_ALLOC(sasl) < 0) {
> - virReportOOMError();
> - goto cleanup;
> - }
> + if (!(sasl = virObjectNew(virNetSASLSessionClass)))
> + return NULL;
I suppose that since this function takes a virNetSASLContextPtr, and
creating one of those already calls virNetSASLContextInitialize(), that
you are safe not calling the one-shot initialization here after all.
> @@ -231,10 +235,8 @@ virNetSASLSessionPtr virNetSASLSessionNewServer(virNetSASLContextPtr ctxt ATTRIB
> virNetSASLSessionPtr sasl = NULL;
> int err;
>
> - if (VIR_ALLOC(sasl) < 0) {
> - virReportOOMError();
> - goto cleanup;
> - }
> + if (!(sasl = virObjectNew(virNetSASLSessionClass)))
> + return NULL;
Another instance of the same comment.
ACK with this squashed in (oh, one of those cfg.mk tweaks actually
belongs in 5/10, and you may want to factor out the duplication cleanup
between libvirt_{private,sasl}.syms into a separate patch):
diff --git i/cfg.mk w/cfg.mk
index ccff146..dc39646 100644
--- i/cfg.mk
+++ w/cfg.mk
@@ -156,9 +156,6 @@ useless_free_options = \
--name=virNetServerProgramFree \
--name=virNetServerServiceFree \
--name=virNetSocketFree \
- --name=virNetSASLContextFree \
- --name=virNetSASLSessionFree \
- --name=virNetTLSSessionFree \
--name=virNWFilterDefFree \
--name=virNWFilterEntryFree \
--name=virNWFilterHashTableFree \
diff --git i/src/libvirt_private.syms w/src/libvirt_private.syms
index acaa6f3..c0bb5a5 100644
--- i/src/libvirt_private.syms
+++ w/src/libvirt_private.syms
@@ -1470,27 +1470,13 @@ xdr_virNetMessageError;
# virnetsaslcontext.h
-virNetSASLContextCheckIdentity;
-virNetSASLContextFree;
virNetSASLContextNewClient;
-virNetSASLContextNewServer;
-virNetSASLContextRef;
virNetSASLSessionClientStart;
virNetSASLSessionClientStep;
virNetSASLSessionDecode;
virNetSASLSessionEncode;
-virNetSASLSessionExtKeySize;
-virNetSASLSessionFree;
-virNetSASLSessionGetIdentity;
-virNetSASLSessionGetKeySize;
virNetSASLSessionGetMaxBufSize;
-virNetSASLSessionListMechanisms;
virNetSASLSessionNewClient;
-virNetSASLSessionNewServer;
-virNetSASLSessionRef;
-virNetSASLSessionSecProps;
-virNetSASLSessionServerStart;
-virNetSASLSessionServerStep;
# virnetserver.h
@@ -1542,7 +1528,6 @@ virNetServerClientSetCloseHook;
virNetServerClientSetDispatcher;
virNetServerClientSetIdentity;
virNetServerClientSetPrivateData;
-virNetServerClientSetSASLSession;
virNetServerClientStartKeepAlive;
virNetServerClientWantClose;
diff --git i/src/libvirt_sasl.syms w/src/libvirt_sasl.syms
index 2c278c8..cc46c0d 100644
--- i/src/libvirt_sasl.syms
+++ w/src/libvirt_sasl.syms
@@ -6,7 +6,6 @@
virNetSASLContextCheckIdentity;
virNetSASLContextNewServer;
virNetSASLSessionExtKeySize;
-virNetSASLSessionFree;
virNetSASLSessionGetIdentity;
virNetSASLSessionGetKeySize;
virNetSASLSessionListMechanisms;
--
Eric Blake eblake at redhat.com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120806/b3f6f934/attachment-0001.sig>
More information about the libvir-list
mailing list