Re: [PATCH 1/2] Make libvirt.so include the RPC server code

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 09/30/2011 07:54 AM, Daniel P. Berrange wrote:
From: "Daniel P. Berrange"<berrange@xxxxxxxxxx>

To avoid static linking libvirtd to the RPC server code, which
then prevents sane introduction of DTrace probes, put it all
in the libvirt.so, and export it

* daemon/Makefile.am: Don't link to RPC libraries
* src/Makefile.am: Link all RPC libraries to libvirt.so
* src/libvirt_private.syms: Export all RPC functions
---
  daemon/Makefile.am       |    2 -
  src/Makefile.am          |    2 +-
  src/libvirt_private.syms |   76 ++++++++++++++++++++++++++++++++++++++++++++++
  3 files changed, 77 insertions(+), 3 deletions(-)


+++ b/src/Makefile.am
@@ -612,7 +612,7 @@ libvirt_driver_remote_la_CFLAGS =				\
  		-I@top_srcdir@/src/rpc				\
  		$(AM_CFLAGS)
  libvirt_driver_remote_la_LDFLAGS = $(AM_LDFLAGS)
-libvirt_driver_remote_la_LIBADD = $(GNUTLS_LIBS) libvirt-net-rpc-client.la libvirt-net-rpc.la
+libvirt_driver_remote_la_LIBADD = $(GNUTLS_LIBS) libvirt-net-rpc-client.la libvirt-net-rpc-server.la libvirt-net-rpc.la

Use \-newline wrapping to make this not be quite so long.


  if WITH_DRIVER_MODULES
  libvirt_driver_remote_la_LIBADD += ../gnulib/lib/libgnu.la
  libvirt_driver_remote_la_LDFLAGS += -module -avoid-version
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index c2a3fab..e086253 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -1162,6 +1162,82 @@ virFileDirectFdNew;
  virFileFclose;
  virFileFdopen;

+# rpc

Hmm, that's not really the .h where they are declared, although it is the right directory. As is, sticking 'rpc' between 'virfile.h' and 'virpidfile.h' doesn't sort very well. It shouldn't be too much more effort to break this into multiple sections, one for each relevant .h...

virnetmessage.h:

+virNetMessageClear;
+virNetMessageEncodeHeader;
+virNetMessageEncodePayload;
+virNetMessageFree;
+virNetMessageNew;
+virNetMessageQueuePush;
+virNetMessageQueueServe;
+virNetMessageSaveError;

virnetsaslcontext.h

+virNetSASLContextCheckIdentity;
+virNetSASLContextNewServer;
+virNetSASLSessionExtKeySize;
+virNetSASLSessionFree;
+virNetSASLSessionGetIdentity;
+virNetSASLSessionGetKeySize;
+virNetSASLSessionListMechanisms;
+virNetSASLSessionNewServer;
+virNetSASLSessionSecProps;
+virNetSASLSessionServerStart;
+virNetSASLSessionServerStep;

virnetserver.h

+virNetServerAddProgram;
+virNetServerAddService;
+virNetServerAddSignalHandler;
+virNetServerAutoShutdown;

virnetserverclient.h

+virNetServerClientAddFilter;
+virNetServerClientClose;
+virNetServerClientDelayedClose;
+virNetServerClientFree;
+virNetServerClientGetAuth;
+virNetServerClientGetFD;
+virNetServerClientGetLocalIdentity;
+virNetServerClientGetPrivateData;
+virNetServerClientGetReadonly;
+virNetServerClientGetTLSKeySize;
+virNetServerClientHasTLSSession;
+virNetServerClientImmediateClose;
+virNetServerClientIsSecure;
+virNetServerClientLocalAddrString;
+virNetServerClientRef;
+virNetServerClientRemoteAddrString;
+virNetServerClientRemoveFilter;
+virNetServerClientSendMessage;
+virNetServerClientSetCloseHook;
+virNetServerClientSetIdentity;
+virNetServerClientSetPrivateData;
+virNetServerClientSetSASLSession;

move these to be with the rest of virnetserver.h

+virNetServerClose;
+virNetServerFree;
+virNetServerIsPrivileged;
+virNetServerNew;

virnetserverprogram.h

+virNetServerProgramFree;
+virNetServerProgramGetID;
+virNetServerProgramGetVersion;
+virNetServerProgramMatches;
+virNetServerProgramNew;
+virNetServerProgramRef;
+virNetServerProgramSendReplyError;
+virNetServerProgramSendStreamData;
+virNetServerProgramSendStreamError;
+virNetServerQuit;
+virNetServerRef;
+virNetServerRun;

virnetserverservice.h

+virNetServerServiceFree;
+virNetServerServiceNewTCP;
+virNetServerServiceNewUNIX;
+virNetServerUpdateServices;

virnetsocket.h

+virNetSocketDupFD;
+virNetSocketFree;
+virNetSocketGetFD;
+virNetSocketListen;
+virNetSocketNewConnectTCP;
+virNetSocketNewListenUNIX;

virnettlscontext.h

+virNetTLSContextFree;
+virNetTLSContextNewServer;
+virNetTLSContextNewServerPath;
+

  # virpidfile.h
  virPidFileAcquire;


But all of those are just layout nits, not technical objections, so I'm okay giving:

ACK with changes

--
Eric Blake   eblake@xxxxxxxxxx    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list


[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]