Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2006-11-27 16:05:54 +0300
committerCorinna Vinschen <corinna@vinschen.de>2006-11-27 16:05:54 +0300
commit8e4735df6c3c79ae01e631aea85729fce0264e47 (patch)
treec7080443282a44aef06f67c38e52d16d654e7983 /winsup/lsaauth/cyglsa-config
parentc6caaa3429d1622d1f3b595a1a6c8ffbe59062c4 (diff)
Initial release of the Cygwin LSA authentication package.
* ChangeLog: New file. * Makefile.in: Ditto. * aclocal.m4: Ditto. * configure.in: Ditto. * configure: Ditto. Generated from configure.in. * cyglsa-config: Ditto. * cyglsa.c: Ditto. * cyglsa.din: Ditto. * cyglsa64.dll: Ditto. * make-64bit-version-with-visual-c.bat: Ditto. * mslsa.def: Ditto.
Diffstat (limited to 'winsup/lsaauth/cyglsa-config')
-rwxr-xr-xwinsup/lsaauth/cyglsa-config115
1 files changed, 115 insertions, 0 deletions
diff --git a/winsup/lsaauth/cyglsa-config b/winsup/lsaauth/cyglsa-config
new file mode 100755
index 000000000..7309260b2
--- /dev/null
+++ b/winsup/lsaauth/cyglsa-config
@@ -0,0 +1,115 @@
+#!/bin/bash
+#
+# cyglsa-config, Copyright 2006 Red Hat Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# A copy of the GNU General Public License can be found at
+# http://www.gnu.org/
+#
+# This file is part of the Cygwin LSA authentication package.
+
+request()
+{
+ if [ "${auto_answer}" = "yes" ]
+ then
+ echo "$1 (yes/no) yes"
+ return 0
+ elif [ "${auto_answer}" = "no" ]
+ then
+ echo "$1 (yes/no) no"
+ return 1
+ fi
+
+ answer=""
+ while [ "X${answer}" != "Xyes" -a "X${answer}" != "Xno" ]
+ do
+ echo -n "$1 (yes/no) "
+ read -e answer
+ done
+ if [ "X${answer}" = "Xyes" ]
+ then
+ return 0
+ else
+ return 1
+ fi
+}
+
+# Check if running on NT
+_sys="`uname`"
+_nt=`expr "${_sys}" : "CYGWIN_NT"`
+if [ ${_nt} -eq 0 ]
+then
+ echo "LSA authentication does not work on Windows 95/98/Me. Exiting."
+ exit 1
+fi
+# If running on NT, check if running under at least Windows 2000
+_nt_too_old=`uname | awk -F- '{print ( $2 < 5.0 ) ? 1 : 0;}'`
+if [ ${_nt_too_old} -eq 1 ]
+then
+ echo "Cygwin LSA authentication not supported on Windows NT4 or older. Exiting."
+ exit 1
+fi
+
+# Directory in which cyglsa DLL is installed as DOS path.
+bindir=`cygpath -w /`\\bin
+
+# Check if we're running on 64 bit Windows. If so, we need the 64 bit
+# cyglsa DLL.
+dll=cyglsa.dll
+test -d `cygpath -p ${SYSTEMROOT}`/SysWOW64 && dll=cyglsa64.dll
+
+# Check if the DLL is actually installed. If not, bail out.
+if [ ! -f /bin/${dll} ]
+then
+ echo "Required Cygwin authentication DLL /bin/${dll} doesn't exist. Exiting."
+ exit 1
+fi
+
+echo
+echo "Warning: Registering the Cygwin LSA authentication package requires"
+echo "administrator privileges! You also have to reboot the machine to"
+echo "activate the change."
+echo
+request "Are you sure you want to continue?" || exit 0
+
+# The registry value which keeps the authentication packages.
+value='/HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Lsa/Authentication Packages'
+
+# Get old content, remove evry trace of "cyglsa" from it and write the
+# content back to the registry with the new, correct path to the cyglsa DLL.
+old=`regtool get "${value}"`
+new=`for i in ${old}
+do
+ echo $i | grep -v cyglsa
+done`
+if ! regtool set "${value}" ${new} "${bindir}\\${dll}"
+then
+ echo "Setting the new registry value failed."
+ exit 1
+fi
+
+echo
+echo "Cygwin LSA authentication package registered."
+echo
+echo "Activating the Cygwin's LSA authentication package requires to reboot."
+if [ -x /bin/shutdown ]
+then
+ if request "Do you want to do this immediately?"
+ then
+ echo
+ echo "Other users might still be working on this machine."
+ echo
+ if request "Are you sure?"
+ then
+ echo
+ echo "Ok, will reboot in 30 seconds."
+ echo
+ echo "If you change your mind, call 'shutdown -a' within 30 seconds"
+ shutdown -r 30
+ fi
+ fi
+fi