]> xenbits.xensource.com Git - libvirt.git/commit
rpc: fix getsockopt for LOCAL_PEERCRED on Mac OS X
authorRyota Ozaki <ozaki.ryota@gmail.com>
Sat, 5 Oct 2013 05:56:36 +0000 (14:56 +0900)
committerMichal Privoznik <mprivozn@redhat.com>
Mon, 7 Oct 2013 08:18:55 +0000 (10:18 +0200)
commit5a468b38b6b9ac66c1db5d8ed5d5a122a9cf01cd
treee22a51da7e1d4041b11cde09f6bd6c85de67bd82
parentf7f469d09f510a76fa69734c1326a3dd3046a823
rpc: fix getsockopt for LOCAL_PEERCRED on Mac OS X

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@gmail.com>
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
src/rpc/virnetsocket.c