[libvirt] [PATCH] virLogDefineOutputs: Fix build without syslog.h

John Ferlan jferlan at redhat.com
Fri Oct 14 02:22:26 UTC 2016



On 10/13/2016 10:12 PM, Michal Privoznik wrote:
> Not every system out there has syslog, that's why we check for it
> in our configure script. However, in 640b58abdf while fixing
> another issue, some variables and functions are called that are
> defined only when syslog.h is present. But these function
> calls/variables were not guarded by #ifdef-s.
> 
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
> 
> Pushed under build breaker rule.
> 
>  src/util/virlog.c | 15 +++++++++------
>  1 file changed, 9 insertions(+), 6 deletions(-)
> 

FYI: There was a patch on list from Eric:

http://www.redhat.com/archives/libvir-list/2016-October/msg00397.html

John

> diff --git a/src/util/virlog.c b/src/util/virlog.c
> index 52b0eea..8f831fc 100644
> --- a/src/util/virlog.c
> +++ b/src/util/virlog.c
> @@ -1362,9 +1362,10 @@ virLogFindOutput(virLogOutputPtr *outputs, size_t noutputs,
>  int
>  virLogDefineOutputs(virLogOutputPtr *outputs, size_t noutputs)
>  {
> -    int ret = -1;
> +#if HAVE_SYSLOG_H
>      int id;
>      char *tmp = NULL;
> +#endif /* HAVE_SYSLOG_H */
>  
>      if (virLogInitialize() < 0)
>          return -1;
> @@ -1372,6 +1373,7 @@ virLogDefineOutputs(virLogOutputPtr *outputs, size_t noutputs)
>      virLogLock();
>      virLogResetOutputs();
>  
> +#if HAVE_SYSLOG_H
>      /* syslog needs to be special-cased, since it keeps the fd in private */
>      if ((id = virLogFindOutput(outputs, noutputs, VIR_LOG_TO_SYSLOG,
>                                 current_ident)) != -1) {
> @@ -1379,20 +1381,21 @@ virLogDefineOutputs(virLogOutputPtr *outputs, size_t noutputs)
>           * holding the lock so it's safe to call openlog and change the message
>           * tag
>           */
> -        if (VIR_STRDUP_QUIET(tmp, outputs[id]->name) < 0)
> -            goto cleanup;
> +        if (VIR_STRDUP_QUIET(tmp, outputs[id]->name) < 0) {
> +            virLogUnlock();
> +            return -1;
> +        }
>          VIR_FREE(current_ident);
>          current_ident = tmp;
>          openlog(current_ident, 0, 0);
>      }
> +#endif /* HAVE_SYSLOG_H */
>  
>      virLogOutputs = outputs;
>      virLogNbOutputs = noutputs;
>  
> -    ret = 0;
> - cleanup:
>      virLogUnlock();
> -    return ret;
> +    return 0;
>  }
>  
>  
> 




More information about the libvir-list mailing list