[libvirt] [PATCH 08/10] Introduce generic RPC module for advertizing via MDNS

Eric Blake eblake at redhat.com
Fri Jun 24 02:41:38 UTC 2011


On 06/22/2011 09:33 AM, Daniel P. Berrange wrote:
> Allow RPC servers to advertize themselves using MDNS,

s/advertize/advertise/ (also in subject line)

(Yes, both spellings are valid, but advertise is by far the more
prevalent, per
http://www.googlefight.com/index.php?lang=en_GB&word1=advertise&word2=advertize)

> via Avahi
> 
> * src/rpc/virnetserver.c, src/rpc/virnetserver.h: Allow
>   registration of MDNS services via avahi
> * src/rpc/virnetserverservice.c, src/rpc/virnetserverservice.h: Add
>   API to fetch the listen port number
> * src/rpc/virnetsocket.c, src/rpc/virnetsocket.h: Add API to
>   fetch the local port number
> * src/rpc/virnetservermdns.c, src/rpc/virnetservermdns.h: Represent
>   an MDNS advertisement
> ---
>  cfg.mk                        |    3 +
>  po/POTFILES.in                |    1 +
>  src/Makefile.am               |    9 +
>  src/rpc/virnetserver.c        |   47 +++-
>  src/rpc/virnetserver.h        |    4 +-
>  src/rpc/virnetservermdns.c    |  614 +++++++++++++++++++++++++++++++++++++++++
>  src/rpc/virnetservermdns.h    |  109 ++++++++
>  src/rpc/virnetserverservice.c |    8 +
>  src/rpc/virnetserverservice.h |    2 +
>  src/rpc/virnetsocket.c        |    6 +
>  src/rpc/virnetsocket.h        |    2 +
>  11 files changed, 803 insertions(+), 2 deletions(-)
>  create mode 100644 src/rpc/virnetservermdns.c
>  create mode 100644 src/rpc/virnetservermdns.h
> 

> @@ -281,6 +291,19 @@ virNetServerPtr virNetServerNew(size_t min_workers,
>      srv->clientInitHook = clientInitHook;
>      srv->privileged = geteuid() == 0 ? true : false;
>  
> +    if (!(srv->mdnsGroupName = strdup(mdnsGroupName))) {
> +        virReportOOMError();
> +        goto error;
> +    }
> +#if HAVE_AVAHI
> +    if (srv->mdnsGroupName) {

This conditional is always true, given the fact that you previously
jumped to error if strdup failed.  Is that intentional?  Or can
mdnsGroupName be NULL on entry, in which case you need to check for NULL
before blindly calling strdup?

>  int virNetServerAddService(virNetServerPtr srv,
> -                           virNetServerServicePtr svc)
> +                           virNetServerServicePtr svc,
> +                           const char *mdnsEntryName ATTRIBUTE_UNUSED)
>  {
>      virNetServerLock(srv);
>  
>      if (VIR_EXPAND_N(srv->services, srv->nservices, 1) < 0)
>          goto no_memory;
>  
> +#if HAVE_AVAHI
> +    if (mdnsEntryName) {

Here's a counter-example where you check for NULL first, for comparison.

Nothing else jumped out at me.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110623/18b83229/attachment-0001.sig>


More information about the libvir-list mailing list