From 77d7de8d47bf1aa9808cc7e67270dfc9c22ca7bd Mon Sep 17 00:00:00 2001 From: Etienne Guesnet Date: Fri, 11 Sep 2020 15:58:49 +0200 Subject: [PATCH] Support of AIX for auth_socket plugin --- plugin/auth_socket/CMakeLists.txt | 14 ++++++++++++++ plugin/auth_socket/auth_socket.c | 6 ++++++ 2 files changed, 20 insertions(+) diff --git a/plugin/auth_socket/CMakeLists.txt b/plugin/auth_socket/CMakeLists.txt index 6f3d571ea43..a3f42d416a7 100644 --- a/plugin/auth_socket/CMakeLists.txt +++ b/plugin/auth_socket/CMakeLists.txt @@ -83,6 +83,19 @@ IF (HAVE_GETPEERUCRED AND HAVE_GETPWUID_POSIX_FINAL) SET(ok 1) ELSE() +# AIX also! +CHECK_CXX_SOURCE_COMPILES( +"#include +int main() { + struct peercred_struct cred; + getsockopt(0, SOL_SOCKET, SO_PEERID, &cred, 0); + }" HAVE_PEERCRED_STRUCT) + +IF (HAVE_PEERCRED_STRUCT) + ADD_DEFINITIONS(-DHAVE_PEERCRED_STRUCT) + SET(ok 1) +ELSE() + # Who else? Anyone? # C'mon, show your creativity, be different! ifdef's are fun, aren't they? @@ -90,6 +103,7 @@ ENDIF() ENDIF() ENDIF() ENDIF() +ENDIF() IF(ok) MYSQL_ADD_PLUGIN(auth_socket auth_socket.c DEFAULT) diff --git a/plugin/auth_socket/auth_socket.c b/plugin/auth_socket/auth_socket.c index b10679a5cc2..c20defed872 100644 --- a/plugin/auth_socket/auth_socket.c +++ b/plugin/auth_socket/auth_socket.c @@ -50,6 +50,12 @@ #elif defined HAVE_GETPEERUCRED #include +#elif defined HAVE_PEERCRED_STRUCT +#define level SOL_SOCKET +#define SO_PEERCRED SO_PEERID +#define uid euid +#define ucred peercred_struct + #else #error impossible #endif