Revision 069a4bcf lib/netutils.py
b/lib/netutils.py | ||
---|---|---|
52 | 52 |
_STRUCT_UCRED = "iII" |
53 | 53 |
_STRUCT_UCRED_SIZE = struct.calcsize(_STRUCT_UCRED) |
54 | 54 |
|
55 |
# Workaround a bug in some linux distributions that don't define SO_PEERCRED |
|
56 |
try: |
|
57 |
_SO_PEERCRED = IN.SO_PEERCRED |
|
58 |
except AttributeError: |
|
59 |
_SO_PEERCRED = 17 |
|
60 |
|
|
55 | 61 |
# Regexes used to find IP addresses in the output of ip. |
56 | 62 |
_IP_RE_TEXT = r"[.:a-z0-9]+" # separate for testing purposes |
57 | 63 |
_IP_FAMILY_RE = re.compile(r"(?P<family>inet6?)\s+(?P<ip>%s)/" % _IP_RE_TEXT, |
... | ... | |
93 | 99 |
@return: The PID, UID and GID of the connected foreign process. |
94 | 100 |
|
95 | 101 |
""" |
96 |
peercred = sock.getsockopt(socket.SOL_SOCKET, IN.SO_PEERCRED,
|
|
102 |
peercred = sock.getsockopt(socket.SOL_SOCKET, _SO_PEERCRED,
|
|
97 | 103 |
_STRUCT_UCRED_SIZE) |
98 | 104 |
return struct.unpack(_STRUCT_UCRED, peercred) |
99 | 105 |
|
Also available in: Unified diff