diff options
author | Etienne Guesnet <etienne.guesnet.external@atos.net> | 2020-09-11 15:58:49 +0200 |
---|---|---|
committer | Daniel Black <daniel@mariadb.org> | 2020-12-16 08:07:04 +1100 |
commit | 77d7de8d47bf1aa9808cc7e67270dfc9c22ca7bd (patch) | |
tree | 6cb5f4775975fa7a9562d60601c45b1f3cd459d6 | |
parent | 2f5d372444cff53914cfcd118e92a91f575cec35 (diff) | |
download | mariadb-git-77d7de8d47bf1aa9808cc7e67270dfc9c22ca7bd.tar.gz |
Support of AIX for auth_socket plugin
-rw-r--r-- | plugin/auth_socket/CMakeLists.txt | 14 | ||||
-rw-r--r-- | plugin/auth_socket/auth_socket.c | 6 |
2 files changed, 20 insertions, 0 deletions
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 <sys/socket.h> +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 <ucred.h> +#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 |