Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
path: root/pynslcd/pynslcd.py
diff options
context:
space:
mode:
Diffstat (limited to 'pynslcd/pynslcd.py')
-rwxr-xr-xpynslcd/pynslcd.py9
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 = {}