diff options
Diffstat (limited to 'main/asterisk.c')
-rw-r--r-- | main/asterisk.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/main/asterisk.c b/main/asterisk.c index 12025f5b9..4c79aee6c 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -1193,12 +1193,18 @@ static int read_credentials(int fd, char *buffer, size_t size, struct console *c return result; } -#if defined(SO_PEERCRED) +#if defined(SO_PEERCRED) && (defined(HAVE_STRUCT_UCRED_UID) || defined(HAVE_STRUCT_UCRED_CR_UID)) if (getsockopt(fd, SOL_SOCKET, SO_PEERCRED, &cred, &len)) { return result; } +#if defined(HAVE_STRUCT_UCRED_UID) uid = cred.uid; gid = cred.gid; +#else /* defined(HAVE_STRUCT_UCRED_CR_UID) */ + uid = cred.cr_uid; + gid = cred.cr_gid; +#endif /* defined(HAVE_STRUCT_UCRED_UID) */ + #elif defined(HAVE_GETPEEREID) if (getpeereid(fd, &uid, &gid)) { return result; |