]> arthur.barton.de Git - ngircd-alex.git/commitdiff
Added Cygwin uid kludge. (verified working)
authorashemira@ucsd.edu <ashemira@ucsd.edu>
Thu, 8 May 2008 05:38:00 +0000 (22:38 -0700)
committerAlexander Barton <alex@barton.de>
Thu, 8 May 2008 11:04:25 +0000 (13:04 +0200)
src/ngircd/ngircd.c

index 626b8b235245b21f43bf17749cb22d2b9182e5d1..d839618fefb8174de42c96fd008318efe6e56cd2 100644 (file)
@@ -671,6 +671,19 @@ NGIRCd_getNobodyID(uid_t *uid, gid_t *gid )
 {
        struct passwd *pwd;
 
 {
        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;
 
        pwd = getpwnam("nobody");
        if (!pwd) return false;