ChangeLog:

* configure.in: Remove --enable-server option.  Allways add the
	cygserver directory to $SUBDIRS.
	* configure: Regenerate.

cygwin/ChangeLog:

	Remove USE_SERVER define.  Accommodate throughout.
	* configure.in: Remove --enable-server option.
	* configure: Regenerate.
	* environ.cc: Remove CYGWIN=server setting.

cygserver/ChangeLog:

	* client.cc (allow_server): Remove variable.
	(client_request_get_version::client_request_get_version): Drop checking
	allow_server.

utils/ChangeLog:

	* passwd.c: Remove CYGWIN=server requirement from usage text.

doc/ChangeLog:

	* cygserver.sgml: Remove the "How to use the Cygserver services"
	section.
	* cygwinenv.sgml: Move "(no)server" to the removed options section.
	* faq-programming.xml: Remove CYGWIN=server requirement for running
	the Cygwin testsuite.
	* ntsec.sgml: Ditto for using `passwd -R'.
This commit is contained in:
Corinna Vinschen 2009-01-21 17:14:39 +00:00
parent d9ad7a9c4e
commit 7ffaa17c80
24 changed files with 2561 additions and 2351 deletions

View File

@ -1,3 +1,9 @@
2009-01-21 Corinna Vinschen <corinna@vinschen.de>
* configure.in: Remove --enable-server option. Allways add the
cygserver directory to $SUBDIRS.
* configure: Regenerate.
2008-10-12 Christopher Faylor <me+cygwin@cgf.cx>
* Makefile.in: Revert erroneous checkin.

1837
winsup/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
dnl Autoconf configure script for Cygwin.
dnl Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 Red Hat, Inc.
dnl Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2006,
dnl 2009 Red Hat, Inc.
dnl
dnl This file is part of Cygwin.
dnl
@ -24,15 +25,6 @@ LIB_AC_PROG_CXX
AC_LANG_C
use_cygserver='yes'
AC_ARG_ENABLE(server,
[ --enable-server Build a cygwin DLL which can communicate with cygserver],
[case "${enableval}" in
yes) ;;
no) use_cygserver=;;
esac
])
INSTALL_LICENSE=
case "$target" in
@ -66,10 +58,7 @@ case "$with_cross_host" in
if test -d $srcdir/lsaauth; then
AC_CONFIG_SUBDIRS(lsaauth)
fi
if test -n "$use_cygserver" -a -d $srcdir/cygserver; then
AC_CONFIG_SUBDIRS(cygserver)
fi
AC_CONFIG_SUBDIRS(utils doc)
AC_CONFIG_SUBDIRS(cygserver utils doc)
;;
esac

View File

@ -1,3 +1,9 @@
2009-01-21 Corinna Vinschen <corinna@vinschen.de>
* client.cc (allow_server): Remove variable.
(client_request_get_version::client_request_get_version): Drop checking
allow_server.
2009-01-03 Christopher Faylor <me+cygwin@cgf.cx>
* Makefile.in (CFLAGS): Look in cygwin's build directory for header

View File

@ -1,6 +1,6 @@
/* client.cc
Copyright 2001, 2002, 2003, 2004 Red Hat Inc.
Copyright 2001, 2002, 2003, 2004, 2008, 2009 Red Hat Inc.
Written by Egor Duda <deo@logos-m.ru>
@ -34,8 +34,6 @@ details. */
int cygserver_running = CYGSERVER_UNKNOWN; // Nb: inherited by children.
bool allow_server = false; // Nb: inherited by children.
client_request_get_version::client_request_get_version ()
: client_request (CYGSERVER_REQUEST_GET_VERSION, &version, sizeof (version))
{
@ -527,13 +525,6 @@ check_cygserver_available ()
void
cygserver_init ()
{
if (!allow_server)
{
syscall_printf ("cygserver use disabled in client");
cygserver_running = CYGSERVER_UNAVAIL;
return;
}
assert (cygserver_running == CYGSERVER_UNKNOWN \
|| cygserver_running == CYGSERVER_OK \
|| cygserver_running == CYGSERVER_UNAVAIL);

View File

@ -1,3 +1,10 @@
2009-01-21 Corinna Vinschen <corinna@vinschen.de>
Remove USE_SERVER define. Accommodate throughout.
* configure.in: Remove --enable-server option.
* configure: Regenerate.
* environ.cc: Remove CYGWIN=server setting.
2009-01-20 Corinna Vinschen <corinna@vinschen.de>
* fhandler_procnet.cc: Reorganize global procnet content data into a

View File

@ -9,6 +9,3 @@
/* Define if using new vfork functionality. */
#undef NEWVFORK
/* Define if using cygserver */
#undef USE_SERVER

View File

@ -11,9 +11,6 @@
/* Define if using new vfork functionality. */
#undef NEWVFORK
/* Define if using cygserver */
#undef USE_SERVER
/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
systems. This function is required for `alloca.c' support on those systems.
*/

2800
winsup/cygwin/configure vendored

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
dnl Autoconf configure script for Cygwin.
dnl Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2003 Red Hat, Inc.
dnl Copyright 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
dnl 2008, 2009 Red Hat, Inc.
dnl
dnl This file is part of Cygwin.
dnl
@ -33,8 +34,6 @@ case "$with_cross_host" in
;;
esac
test -n "$LIBSERVER" && AC_DEFINE(USE_SERVER)
AC_SUBST(all_host)
AC_SUBST(install_host)
@ -77,14 +76,6 @@ no) ;;
esac
])
AC_ARG_ENABLE(server,
[ --enable-server Build a cygwin DLL which can communicate with cygserver],
[case "${enableval}" in
yes) ;;
no) LIBSERVER=;;
esac
])
MALLOC_OFILES=malloc.o
dnl The only time we might want to transform the install names

View File

@ -35,9 +35,6 @@ extern bool allow_winsymlinks;
bool reset_com = false;
static bool envcache = true;
static bool create_upcaseenv = false;
#ifdef USE_SERVER
extern bool allow_server;
#endif
static char **lastenviron;
@ -632,9 +629,6 @@ static struct parse_thing
{"glob", {func: &glob_init}, isfunc, NULL, {{0}, {s: "normal"}}},
{"proc_retry", {func: set_proc_retry}, isfunc, NULL, {{0}, {5}}},
{"reset_com", {&reset_com}, justset, NULL, {{false}, {true}}},
#ifdef USE_SERVER
{"server", {&allow_server}, justset, NULL, {{false}, {true}}},
#endif
{"strip_title", {&strip_title_path}, justset, NULL, {{false}, {true}}},
{"title", {&display_title}, justset, NULL, {{false}, {true}}},
{"tty", {NULL}, set_process_state, NULL, {{0}, {PID_USETTY}}},

View File

@ -1,7 +1,7 @@
/* fhandler_tty.cc
Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007, 2008 Red Hat, Inc.
2006, 2007, 2008, 2009 Red Hat, Inc.
This file is part of Cygwin.
@ -528,10 +528,8 @@ fhandler_tty_slave::open (int flags, mode_t)
HANDLE to_master_local;
from_master_local = to_master_local = NULL;
#ifdef USE_SERVER
if (cygserver_running == CYGSERVER_UNAVAIL
|| !cygserver_attach_tty (&from_master_local, &to_master_local))
#endif
{
if (get_ttyp ()->master_pid < 0)
{
@ -546,9 +544,7 @@ fhandler_tty_slave::open (int flags, mode_t)
termios_printf ("*** couldn't find tty master");
return 0;
}
#ifdef USE_SERVER
termios_printf ("cannot dup handles via server. using old method.");
#endif
HANDLE tty_owner = OpenProcess (PROCESS_DUP_HANDLE, FALSE,
p->dwProcessId);
if (tty_owner == NULL)
@ -642,9 +638,6 @@ int
fhandler_tty_slave::cygserver_attach_tty (LPHANDLE from_master_ptr,
LPHANDLE to_master_ptr)
{
#ifndef USE_SERVER
return 0;
#else
if (!from_master_ptr || !to_master_ptr)
return 0;
@ -659,7 +652,6 @@ fhandler_tty_slave::cygserver_attach_tty (LPHANDLE from_master_ptr,
*to_master_ptr = req.to_master ();
return 1;
#endif
}
void
@ -1400,10 +1392,8 @@ fhandler_pty_master::setup (bool ispty)
but rely on cygheap->inherited_ctty for descendant processes.
In the future the cygserver may allow access by others. */
#ifdef USE_SERVER
if (cygserver_running == CYGSERVER_UNKNOWN)
cygserver_init ();
#endif
/* Create synchronisation events */

View File

@ -209,7 +209,6 @@ frok::child (volatile char * volatile here)
MALLOC_CHECK;
#ifdef USE_SERVER
/* Incredible but true: If we use sockets and SYSV IPC shared memory,
there's a good chance that a duplicated socket in the child occupies
memory which is needed to duplicate shared memory from the parent
@ -219,7 +218,6 @@ frok::child (volatile char * volatile here)
fdtab before fixing up shared memory. */
if (fixup_shms_after_fork ())
api_fatal ("recreate_shm areas after fork failed");
#endif
MALLOC_CHECK;

View File

@ -1,6 +1,6 @@
/* msg.cc: XSI IPC interface for Cygwin.
Copyright 2003 Red Hat, Inc.
Copyright 2003, 2009 Red Hat, Inc.
This file is part of Cygwin.
@ -9,7 +9,6 @@ Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#include "winsup.h"
#ifdef USE_SERVER
#include <unistd.h>
#include "sigproc.h"
@ -84,7 +83,6 @@ client_request_msg::client_request_msg (int msqid,
msglen (sizeof (_parameters.in));
}
#endif /* USE_SERVER */
/*
* XSI message queue API. These are exported by the DLL.
@ -93,7 +91,6 @@ client_request_msg::client_request_msg (int msqid,
extern "C" int
msgctl (int msqid, int cmd, struct msqid_ds *buf)
{
#ifdef USE_SERVER
syscall_printf ("msgctl (msqid = %d, cmd = 0x%x, buf = %p)",
msqid, cmd, buf);
myfault efault;
@ -126,17 +123,11 @@ msgctl (int msqid, int cmd, struct msqid_ds *buf)
return -1;
}
return request.retval ();
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}
extern "C" int
msgget (key_t key, int msgflg)
{
#ifdef USE_SERVER
syscall_printf ("msgget (key = %U, msgflg = 0x%x)", key, msgflg);
client_request_msg request (key, msgflg);
if (request.make_request () == -1 || request.retval () == -1)
@ -148,17 +139,11 @@ msgget (key_t key, int msgflg)
return -1;
}
return request.retval ();
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}
extern "C" ssize_t
msgrcv (int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg)
{
#ifdef USE_SERVER
syscall_printf ("msgrcv (msqid = %d, msgp = %p, msgsz = %d, "
"msgtyp = %d, msgflg = 0x%x)",
msqid, msgp, msgsz, msgtyp, msgflg);
@ -175,17 +160,11 @@ msgrcv (int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg)
return -1;
}
return request.rcvval ();
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}
extern "C" int
msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)
{
#ifdef USE_SERVER
syscall_printf ("msgsnd (msqid = %d, msgp = %p, msgsz = %d, msgflg = 0x%x)",
msqid, msgp, msgsz, msgflg);
myfault efault;
@ -201,9 +180,4 @@ msgsnd (int msqid, const void *msgp, size_t msgsz, int msgflg)
return -1;
}
return request.retval ();
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}

View File

@ -1,6 +1,6 @@
/* sem.cc: XSI IPC interface for Cygwin.
Copyright 2003 Red Hat, Inc.
Copyright 2003, 2004, 2009 Red Hat, Inc.
This file is part of Cygwin.
@ -9,7 +9,6 @@ Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#include "winsup.h"
#ifdef USE_SERVER
#include <unistd.h>
#include "sigproc.h"
@ -67,7 +66,6 @@ client_request_sem::client_request_sem (int semid,
msglen (sizeof (_parameters.in));
}
#endif /* USE_SERVER */
/*
* XSI semaphore API. These are exported by the DLL.
@ -76,7 +74,6 @@ client_request_sem::client_request_sem (int semid,
extern "C" int
semctl (int semid, int semnum, int cmd, ...)
{
#ifdef USE_SERVER
union semun arg = {0};
if (cmd == IPC_STAT || cmd == IPC_SET || cmd == IPC_INFO || cmd == SEM_INFO
|| cmd == GETALL || cmd == SETALL || cmd == SETVAL)
@ -101,17 +98,11 @@ semctl (int semid, int semnum, int cmd, ...)
return -1;
}
return request.retval ();
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}
extern "C" int
semget (key_t key, int nsems, int semflg)
{
#ifdef USE_SERVER
syscall_printf ("semget (key = %U, nsems = %d, semflg = 0x%x)",
key, nsems, semflg);
client_request_sem request (key, nsems, semflg);
@ -124,17 +115,11 @@ semget (key_t key, int nsems, int semflg)
return -1;
}
return request.retval ();
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}
extern "C" int
semop (int semid, struct sembuf *sops, size_t nsops)
{
#ifdef USE_SERVER
syscall_printf ("semop (semid = %d, sops = %p, nsops = %d)",
semid, sops, nsops);
myfault efault;
@ -150,9 +135,4 @@ semop (int semid, struct sembuf *sops, size_t nsops)
return -1;
}
return request.retval ();
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}

View File

@ -1,6 +1,6 @@
/* setlsapwd.cc: Set LSA private data password for current user.
Copyright 2008 Red Hat, Inc.
Copyright 2008, 2009 Red Hat, Inc.
This file is part of Cygwin.
@ -22,7 +22,6 @@ details. */
#include <stdlib.h>
#include <wchar.h>
#ifdef USE_SERVER
/*
* client_request_setpwd Constructor
*/
@ -37,8 +36,6 @@ client_request_setpwd::client_request_setpwd (PUNICODE_STRING passwd)
msglen (sizeof (_parameters.in));
}
#endif /* USE_SERVER */
unsigned long
setlsapwd (const char *passwd)
{
@ -74,17 +71,14 @@ setlsapwd (const char *passwd)
__seterrno_from_nt_status (status);
LsaClose (lsa);
}
#ifdef USE_SERVER
else if (ret)
{
/* If that fails, ask cygserver. */
client_request_setpwd request (&data);
if (request.make_request () == -1 || request.error_code ())
set_errno (request.error_code ());
else
ret = 0;
}
#endif
if (data_buf)
{
memset (data.Buffer, 0, data.Length);

View File

@ -1,6 +1,6 @@
/* shm.cc: XSI IPC interface for Cygwin.
Copyright 2003 Red Hat, Inc.
Copyright 2003, 2004, 2007, 2009 Red Hat, Inc.
This file is part of Cygwin.
@ -9,7 +9,6 @@ Cygwin license. Please consult the file "CYGWIN_LICENSE" for
details. */
#include "winsup.h"
#ifdef USE_SERVER
#include <sys/queue.h>
#include <unistd.h>
@ -142,7 +141,6 @@ fixup_shms_after_fork ()
}
return 0;
}
#endif /* USE_SERVER */
/*
* XSI shmaphore API. These are exported by the DLL.
@ -151,7 +149,6 @@ fixup_shms_after_fork ()
extern "C" void *
shmat (int shmid, const void *shmaddr, int shmflg)
{
#ifdef USE_SERVER
syscall_printf ("shmat (shmid = %d, shmaddr = %p, shmflg = 0x%x)",
shmid, shmaddr, shmflg);
@ -247,17 +244,11 @@ shmat (int shmid, const void *shmaddr, int shmflg)
SLIST_INSERT_HEAD (&sph_list, sph_entry, sph_next);
SLIST_UNLOCK ();
return ptr;
#else
set_errno (ENOSYS);
raise (SIGSYS);
return (void *) -1;
#endif
}
extern "C" int
shmctl (int shmid, int cmd, struct shmid_ds *buf)
{
#ifdef USE_SERVER
syscall_printf ("shmctl (shmid = %d, cmd = %d, buf = 0x%x)",
shmid, cmd, buf);
myfault efault;
@ -295,17 +286,11 @@ shmctl (int shmid, int cmd, struct shmid_ds *buf)
SLIST_UNLOCK ();
}
return request.retval ();
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}
extern "C" int
shmdt (const void *shmaddr)
{
#ifdef USE_SERVER
syscall_printf ("shmdt (shmaddr = %p)", shmaddr);
client_request_shm request (shmaddr);
if (request.make_request () == -1 || request.retval () == -1)
@ -341,17 +326,11 @@ shmdt (const void *shmaddr)
}
SLIST_UNLOCK ();
return request.retval ();
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}
extern "C" int
shmget (key_t key, size_t size, int shmflg)
{
#ifdef USE_SERVER
syscall_printf ("shmget (key = %U, size = %d, shmflg = 0x%x)",
key, size, shmflg);
/* Try allocating memory before calling cygserver. */
@ -398,9 +377,4 @@ shmget (key_t key, size_t size, int shmflg)
SLIST_INSERT_HEAD (&ssh_list, ssh_new_entry, ssh_next);
SLIST_UNLOCK ();
return shmid;
#else
set_errno (ENOSYS);
raise (SIGSYS);
return -1;
#endif
}

View File

@ -1,3 +1,12 @@
2009-01-21 Corinna Vinschen <corinna@vinschen.de>
* cygserver.sgml: Remove the "How to use the Cygserver services"
section.
* cygwinenv.sgml: Move "(no)server" to the removed options section.
* faq-programming.xml: Remove CYGWIN=server requirement for running
the Cygwin testsuite.
* ntsec.sgml: Ditto for using `passwd -R'.
2008-12-15 Corinna Vinschen <corinna@vinschen.de>
* gcc.sgml: Use 'bash$' as Cygwin prompt throughout.

View File

@ -191,51 +191,6 @@
</sect2>
<sect2 id="use-cygserver"><title>How to use the Cygserver services</title>
<para>
The Cygserver services are used by Cygwin applications only if you
set the environment variable CYGWIN to contain the string "server".
You must do this before starting the application.
</para>
<para>
Typically, you don't need any other option, so it's ok to set CYGWIN
just to "server". It is not necessary to set the CYGWIN environment
variable prior to starting the Cygserver process itself, but it won't
hurt to do so.
</para>
<para>
The easiest way is to set the environment variable CYGWIN to the values
you want in the Windows system environment and to reboot the machine.
This is advisable, since it allows you to set the variable once and
then forget about it. It also ensures that services as well as desktop
applications have the same setting.
</para>
<para>
If you don't want that for whatever reason, you can set the
variable in the /cygwin.bat file which is used in the net distribution,
to start a Cygwin bash from the desktop. In that file, you can set
the CYGWIN variable using Windows command line interpreter syntax, e. g.:
</para>
<para>
<screen>
set CYGWIN=server
</screen>
</para>
<para>
If you don't set CYGWIN in the system environment, but you're running
other Cygwin services, these services need to get that CYGWIN value by
setting the environment using the appropriate cygrunsrv option '-e' when
installing the service. Example installing a service 'foo':
</para>
<para>
<screen>
cygrunsrv -I foo -p /usr/sbin/foo -e "CYGWIN=server"
</screen>
</para>
</sect2>
<sect2 id="cygserver-config"><title>The Cygserver configuration file</title>
<para>

View File

@ -99,17 +99,6 @@ to 9600-8-N-1 with no flow control when used. This is done at open
time and when handles are inherited. Defaults to set.</para>
</listitem>
<listitem>
<para><envar>(no)server</envar> - if set, allows client applications
to use the Cygserver facilities. This option must be enabled explicitely
on the client side, otherwise your applications won't be able to use the
XSI IPC function calls (<function>msgget</function>,
<function>semget</function>, <function>shmget</function>, and friends)
successfully. These function calls will return with
<literal>ENOSYS</literal>, "Bad system call".
</para>
</listitem>
<listitem>
<para><envar>(no)strip_title</envar> - if set, strips the directory
part off the window title, if any. Default is not set.</para>
@ -218,6 +207,15 @@ the per-mount option "acl"/"noacl". For more information, read the
documentation in <xref linkend="mount-table"></xref>.</para>
</listitem>
<listitem>
<para><envar>(no)server</envar> - Originally this option had to be
enabled on the client side to use features only available when running
<command>cygserver</command>. This option has been removed because Cygwin now
always tries to contact cygserver if a function is called which requires
cygserver being available. For more information, read the documentation
in <xref linkend="using-cygserver"></xref>.</para>
</listitem>
<listitem>
<para><envar>(no)smbntsec</envar> - This option has been removed in favor of
the per-mount option "acl"/"noacl". For more information, read the

View File

@ -439,9 +439,7 @@ rewriting the runtime library in question from specs...
<para>First, you need to make sure you have the necessary build tools
installed; you at least need <literal>gcc</literal>, <literal>make</literal>,
<literal>perl</literal>, and <literal>cocom</literal>. If you want to run
the tests, <literal>dejagnu</literal> is also required,
and you need to have <literal>CYGWIN=server</literal> set as described at
<ulink url="http://www.cygwin.com/cygwin-ug-net/using-cygserver.html" />.
the tests, <literal>dejagnu</literal> is also required.
Normally, building ignores any errors in building the documentation,
which requires the <literal>docbook-xml42</literal>, <literal>docbook-xsl</literal>, and
<literal>xmlto</literal> packages. For more information on building the

View File

@ -790,22 +790,11 @@ all network credentials. Hmm, that's heaven...</para>
<para>First, adding a password to the LSA private registry area
requires administrative access. So calling <command>passwd -R</command>
as a normal user will fail. Cygwin provides a workaround for
as a normal user will fail! Cygwin provides a workaround for
this. If <command>cygserver</command> is started as a service running
under the SYSTEM account (which is the default way to run
<command>cygserver</command>) you can use <command>passwd -R</command>
as normal, non-privileged user as well. Just keep in mind that this
requires to set the environment variable CYGWIN to contain the word
"server" before running <command>passwd -R</command>, if it's not
already set anyway. See <xref linkend="using-cygwinenv"></xref>.
Example:</para>
<screen>
bash$ echo $CYGWIN
tty
bash$ export CYGWIN="tty server"
bash$ passwd -R
</screen>
as normal, non-privileged user as well.</para>
<para>Second, as aforementioned, the password is two-way encrypted in a
hidden, obfuscated registry area. Only SYSTEM has access to this area

View File

@ -1,3 +1,7 @@
2009-01-21 Corinna Vinschen <corinna@vinschen.de>
* passwd.c: Remove CYGWIN=server requirement from usage text.
2009-01-17 Corinna Vinschen <corinna@vinschen.de>
* Makefile.in: Fix copyright date.

View File

@ -1,6 +1,6 @@
/* passwd.c: Changing passwords and managing account information
Copyright 1999, 2000, 2001, 2002, 2003, 2008 Red Hat, Inc.
Copyright 1999, 2000, 2001, 2002, 2003, 2008, 2009 Red Hat, Inc.
Written by Corinna Vinschen <corinna.vinschen@cityweb.de>
@ -289,8 +289,8 @@ usage (FILE * stream, int status)
"operations. Don't specify a USER when triggering a system operation.\n"
"\n"
"Don't specify a user or any other option together with the -R option.\n"
"Non-Admin users can only store their password if cygserver is running and\n"
"the CYGWIN environment variable is set to contain the word 'server'.\n"
"Non-Admin users can only store their password if cygserver is running\n"
"as service under the SYSTEM account.\n"
"Note that storing even obfuscated passwords in the registry is not overly\n"
"secure. Use this feature only if the machine is adequately locked down.\n"
"Don't use this feature if you don't need network access within a remote\n"