Hi Michal,
On Mon, Oct 7, 2013 at 5:33 PM, Michal Privoznik <mprivozn(a)redhat.com> wrote:
On 05.10.2013 07:56, Ryota Ozaki wrote:
> This fixes the following error:
> error : virGetUserEnt:703 : Failed to find user record for uid '32654'
>
> '32654' (it's random and varies) comes from getsockopt with
> LOCAL_PEERCRED option. getsockopt returns w/o error but seems
> to not set any value to the buffer for uid.
>
> For Mac OS X, LOCAL_PEERCRED has to be used with SOL_LOCAL level.
> With SOL_LOCAL, getsockopt returns a correct uid.
>
> Note that SOL_LOCAL can be found in
> /System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/un.h.
>
> Signed-off-by: Ryota Ozaki <ozaki.ryota(a)gmail.com>
> ---
> src/rpc/virnetsocket.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c
> index 152c5fc..a6ef07a 100644
> --- a/src/rpc/virnetsocket.c
> +++ b/src/rpc/virnetsocket.c
> @@ -1159,7 +1159,11 @@ int virNetSocketGetUNIXIdentity(virNetSocketPtr sock,
> socklen_t cr_len = sizeof(cr);
> virObjectLock(sock);
>
> +#if defined(__APPLE__)
> + if (getsockopt(sock->fd, SOL_LOCAL, LOCAL_PEERCRED, &cr, &cr_len)
< 0) {
> +#else
> if (getsockopt(sock->fd, SOL_SOCKET, LOCAL_PEERCRED, &cr, &cr_len)
< 0) {
> +#endif
> virReportSystemError(errno, "%s",
> _("Failed to get client socket identity"));
> virObjectUnlock(sock);
>
Indentation off. Fixed and pushed. You can use 'make syntax-check' to
catch these problems. Although, you need cppi installed.
I did make syntax-check, however I'm sorry, I ignored warnings for cppi...
I've installed cppi via 'brew create' and confirmed the syntax problems.
Thanks,
ozaki-r
ACK
Michal
NB: Cole, I think this is yet another candidate for maint branches.