summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2007-09-15 18:55:04 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:30:48 -0500
commit6e4bf4c18897640f0ec795fba75526a4e0892f25 (patch)
tree87a753542a2a9c9cdd9357ba0f5d4c7bc3bfe7be
parentbb4773e30f6c524fc2c403111238d61a92474aed (diff)
downloadsamba-6e4bf4c18897640f0ec795fba75526a4e0892f25.tar.gz
samba-6e4bf4c18897640f0ec795fba75526a4e0892f25.tar.bz2
samba-6e4bf4c18897640f0ec795fba75526a4e0892f25.zip
r25177: if configured using --enable-socket-wrapper
allow overwritting the location of the WINBINDD_SOCKET_DIR via an environment variable metze (This used to be commit 93bdd2724cc711005a5f2f223b499199394e78e7)
-rw-r--r--source3/nsswitch/wb_common.c16
-rw-r--r--source3/nsswitch/winbind_struct_protocol.h7
2 files changed, 22 insertions, 1 deletions
diff --git a/source3/nsswitch/wb_common.c b/source3/nsswitch/wb_common.c
index bc65239b1b..2ae85dcb1e 100644
--- a/source3/nsswitch/wb_common.c
+++ b/source3/nsswitch/wb_common.c
@@ -280,6 +280,20 @@ static int winbind_named_pipe_sock(const char *dir)
return -1;
}
+static const char *winbindd_socket_dir(void)
+{
+#ifdef SOCKET_WRAPPER
+ const char *env_dir;
+
+ env_dir = getenv(WINBINDD_SOCKET_DIR_ENVVAR);
+ if (env_dir) {
+ return env_dir;
+ }
+#endif
+
+ return WINBINDD_SOCKET_DIR;
+}
+
/* Connect to winbindd socket */
static int winbind_open_pipe_sock(int recursing, int need_priv)
@@ -308,7 +322,7 @@ static int winbind_open_pipe_sock(int recursing, int need_priv)
return -1;
}
- if ((winbindd_fd = winbind_named_pipe_sock(WINBINDD_SOCKET_DIR)) == -1) {
+ if ((winbindd_fd = winbind_named_pipe_sock(winbindd_socket_dir())) == -1) {
return -1;
}
diff --git a/source3/nsswitch/winbind_struct_protocol.h b/source3/nsswitch/winbind_struct_protocol.h
index fb09f3f75f..645534b836 100644
--- a/source3/nsswitch/winbind_struct_protocol.h
+++ b/source3/nsswitch/winbind_struct_protocol.h
@@ -27,6 +27,13 @@
#define WINBINDD_SOCKET_DIR "/tmp/.winbindd" /* Name of PF_UNIX dir */
#endif
+/*
+ * when compiled with socket_wrapper support
+ * the location of the WINBINDD_SOCKET_DIR
+ * can be overwritten via an environment variable
+ */
+#define WINBINDD_SOCKET_DIR_ENVVAR "WINBINDD_SOCKET_DIR"
+
#define WINBINDD_PRIV_SOCKET_SUBDIR "winbindd_privileged" /* name of subdirectory of lp_lockdir() to hold the 'privileged' pipe */
#define WINBINDD_DOMAIN_ENV "WINBINDD_DOMAIN" /* Environment variables */
#define WINBINDD_DONT_ENV "_NO_WINBINDD"