diff options
Diffstat (limited to 'pynslcd/pynslcd.py')
-rwxr-xr-x | pynslcd/pynslcd.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/pynslcd/pynslcd.py b/pynslcd/pynslcd.py index 7cd8209..a053ad5 100755 --- a/pynslcd/pynslcd.py +++ b/pynslcd/pynslcd.py @@ -169,8 +169,13 @@ def log_newsession(): def getpeercred(fd): - return (None, None, None) - # FIXME: implement and return uid, gid, pid + """Return uid, gid and pid of calling application.""" + import struct + import socket + SO_PEERCRED = 17 + creds = fd.getsockopt(socket.SOL_SOCKET, SO_PEERCRED, struct.calcsize('3i')) + pid, uid, gid = struct.unpack('3i',creds) + return uid, gid, pid handlers = {} |