From: Roger Dingledine Date: Mon, 27 Oct 2003 10:26:44 +0000 (+0000) Subject: bugfix for win32 with lots of users X-Git-Tag: tor-0.0.2pre14~166 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a27b570788cdac4eb3e90f059e721859d25418e5;p=thirdparty%2Ftor.git bugfix for win32 with lots of users plus general cleanup on switch_id() svn:r684 --- diff --git a/src/common/fakepoll.c b/src/common/fakepoll.c index cca6e44215..e16f2177ea 100644 --- a/src/common/fakepoll.c +++ b/src/common/fakepoll.c @@ -24,6 +24,11 @@ #include #endif +/* by default, windows handles only 64 fd's */ +#if defined(MS_WINDOWS) && !defined(FD_SETSIZE) +#define FD_SETSIZE MAXCONNECTIONS +#endif + #include "util.h" int diff --git a/src/common/util.c b/src/common/util.c index 3d20f81049..525f27b88e 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -589,7 +589,6 @@ void write_pidfile(char *filename) { int switch_id(char *user, char *group) { #ifndef MS_WINDOWS - int status; struct passwd *pw = NULL; struct group *gr = NULL; @@ -609,24 +608,21 @@ int switch_id(char *user, char *group) { return -1; } - status = setgid(gr->gr_gid); - if (status != 0) { + if (setgid(gr->gr_gid) != 0) { log_fn(LOG_ERR,"Error setting GID: %s", strerror(errno)); return -1; } } else if (user) { - status = setgid(pw->pw_gid); - if (status != 0) { + if (setgid(pw->pw_gid) != 0) { log_fn(LOG_ERR,"Error setting GID: %s", strerror(errno)); return -1; } } /* now that the group is switched, we can switch users and lose - priviledges */ + privileges */ if (user) { - status = setuid(pw->pw_uid); - if (status != 0) { + if (setuid(pw->pw_uid) != 0) { log_fn(LOG_ERR,"Error setting UID: %s", strerror(errno)); return -1; }