repo: ngircd
action: commit
revision: 
path_from: 
revision_from: 5cf5ba31eb0cae6c28d5754f6e62956f83582b06:
path_to: 
revision_to: 
git.thebackupbox.net
ngircd
git clone git://git.thebackupbox.net/ngircd
commit 5cf5ba31eb0cae6c28d5754f6e62956f83582b06
Author: Ali Shemiran 
Date:   Wed May 7 22:38:00 2008 -0700

    Added Cygwin uid kludge. (verified working)

diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c
index 626b8b235245b21f43bf17749cb22d2b9182e5d1..
index ..d839618fefb8174de42c96fd008318efe6e56cd2 100644
--- a/src/ngircd/ngircd.c
+++ b/src/ngircd/ngircd.c
@@ -671,6 +671,19 @@ NGIRCd_getNobodyID(uid_t *uid, gid_t *gid )
 {
 	struct passwd *pwd;

+#ifdef __CYGWIN__
+	/* Cygwin kludge.
+	 * It can return EINVAL instead of EPERM
+	 * so, if we are already unprivileged,
+	 * use id of current user.
+	 */
+	if (geteuid() && getuid()) {
+		*uid = getuid();
+		*gid = getgid();
+		return true;
+	}
+#endif
+
 	pwd = getpwnam("nobody");
 	if (!pwd) return false;

-----END OF PAGE-----