dtlogin-userinfo.patch revision 1276
1351N/A# Copyright (c) 2006, 2012, Oracle and/or its affiliates. All rights reserved.
98N/A#
98N/A# Permission is hereby granted, free of charge, to any person obtaining a
919N/A# copy of this software and associated documentation files (the "Software"),
919N/A# to deal in the Software without restriction, including without limitation
919N/A# the rights to use, copy, modify, merge, publish, distribute, sublicense,
919N/A# and/or sell copies of the Software, and to permit persons to whom the
919N/A# Software is furnished to do so, subject to the following conditions:
919N/A#
919N/A# The above copyright notice and this permission notice (including the next
919N/A# paragraph) shall be included in all copies or substantial portions of the
919N/A# Software.
919N/A#
919N/A# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
919N/A# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
919N/A# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
919N/A# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
919N/A# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
919N/A# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
919N/A# DEALINGS IN THE SOFTWARE.
1276N/A
1276N/AIntegration of Display Manager (gdm/xdm/etc.) to X server communication pipe
1276N/Awith core server code - see sun-src/os/dtlogin.c for the main implementation.
1276N/A
1124N/Adiff --git a/configure.ac b/configure.ac
1351N/Aindex 3047b2a..1ff432f 100644
1124N/A--- a/configure.ac
1124N/A+++ b/configure.ac
1351N/A@@ -1457,6 +1457,7 @@ PKG_CHECK_MODULES([XSERVERLIBS], [$REQUIRED_LIBS])
1088N/A XSERVER_CFLAGS="${XSERVER_CFLAGS} ${XSERVERCFLAGS_CFLAGS}"
1088N/A XSERVER_LIBS="$DIX_LIB $MI_LIB $OS_LIB"
1088N/A XSERVER_SYS_LIBS="${XSERVERLIBS_LIBS} ${SYS_LIBS} ${LIBS}"
606N/A+XSERVER_SYS_LIBS="${XSERVER_SYS_LIBS} -lproject"
606N/A AC_SUBST([XSERVER_LIBS])
606N/A AC_SUBST([XSERVER_SYS_LIBS])
98N/A
1124N/Adiff --git a/dix/main.c b/dix/main.c
1351N/Aindex 4563cb3..f9ecfa7 100644
1124N/A--- a/dix/main.c
1124N/A+++ b/dix/main.c
1351N/A@@ -115,6 +115,11 @@ Equipment Corporation.
781N/A #include "dpmsproc.h"
781N/A #endif
781N/A
781N/A+#ifdef SUNSOFT
781N/A+extern void DtloginInit(void);
781N/A+extern void DtloginCloseDown(void);
781N/A+#endif /* SUNSOFT */
781N/A+
781N/A extern void Dispatch(void);
781N/A
1124N/A #ifdef XQUARTZ
1351N/A@@ -164,6 +169,13 @@ main(int argc, char *argv[], char *envp[])
1276N/A InitBlockAndWakeupHandlers();
1276N/A /* Perform any operating system dependent initializations you'd like */
1276N/A OsInit();
781N/A+
781N/A+#ifdef SUNSOFT
1276N/A+ /* Create pipe for dtlogin authentication info before we tell dtlogin
1276N/A+ we're done and ready for it to run. */
1276N/A+ DtloginInit ();
781N/A+#endif
781N/A+
1276N/A if (serverGeneration == 1) {
1276N/A CreateWellKnownSockets();
1276N/A for (i = 1; i < MAXCLIENTS; i++)
1351N/A@@ -295,6 +307,11 @@ main(int argc, char *argv[], char *envp[])
1276N/A pthread_mutex_unlock(&serverRunningMutex);
1142N/A #endif
781N/A
781N/A+#ifdef SUNSOFT
1276N/A+ /* Return to root privs before calling the rest of close down */
1276N/A+ DtloginCloseDown ();
781N/A+#endif
781N/A+
1276N/A UndisplayDevices();
1351N/A
781N/A /* Now free up whatever must be freed */
1124N/Adiff --git a/os/Makefile.am b/os/Makefile.am
1265N/Aindex c4825ad..27d70ca 100644
1124N/A--- a/os/Makefile.am
1124N/A+++ b/os/Makefile.am
1265N/A@@ -35,6 +35,9 @@ if XDMCP
1265N/A libos_la_SOURCES += $(XDMCP_SRCS)
98N/A endif
98N/A
1088N/A+libos_la_SOURCES += dtlogin.c
1196N/A+libos_la_LIBADD += -lproject
98N/A+
1265N/A EXTRA_DIST = $(SECURERPC_SRCS) $(XDMCP_SRCS)
606N/A
1265N/A if SPECIAL_DTRACE_OBJECTS
1124N/Adiff --git a/os/auth.c b/os/auth.c
1276N/Aindex ac20de4..d43795b 100644
1124N/A--- a/os/auth.c
1124N/A+++ b/os/auth.c
1276N/A@@ -277,6 +277,19 @@ AddAuthorization(unsigned name_length, const char *name,
98N/A return 0;
98N/A }
98N/A
98N/A+#ifdef SUNSOFT
98N/A+/* This function is called from dtlogin.c
98N/A+ * This is added to do "chmod authorization_file" since
98N/A+ * this file is owned by root and we need to change this
98N/A+ * to user logged on.
98N/A+ */
98N/A+const char *
98N/A+GetAuthFilename(void)
98N/A+{
98N/A+ return (authorization_file);
98N/A+}
98N/A+#endif
98N/A+
98N/A #ifdef XCSECURITY
98N/A
98N/A XID