diff options
| author | ashemira@ucsd.edu <ashemira@ucsd.edu> | 2008-05-07 22:38:00 -0700 |
|---|---|---|
| committer | Alexander Barton <alex@barton.de> | 2008-05-08 13:04:25 +0200 |
| commit | 5cf5ba31eb0cae6c28d5754f6e62956f83582b06 (patch) | |
| tree | 51b4b6fe3c93eef82da45151cf362ab351f804bb /src | |
| parent | 75b719a0c88b58b6de3024413374b066ac4c6849 (diff) | |
| download | ngircd-5cf5ba31eb0cae6c28d5754f6e62956f83582b06.tar.gz ngircd-5cf5ba31eb0cae6c28d5754f6e62956f83582b06.zip | |
Added Cygwin uid kludge. (verified working)
Diffstat (limited to 'src')
| -rw-r--r-- | src/ngircd/ngircd.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/ngircd/ngircd.c b/src/ngircd/ngircd.c index 626b8b23..d839618f 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; |