diff -ruN mod_throttle-3.1.2.orig/mod_throttle.c mod_throttle-3.1.2/mod_throttle.c --- mod_throttle-3.1.2.orig/mod_throttle.c 2000-12-03 05:15:10.000000000 -0500 +++ mod_throttle-3.1.2/mod_throttle.c 2002-12-13 21:49:19.000000000 -0500 @@ -1865,13 +1865,12 @@ } static const char * -throttle_single_user(cmd_parms *cmd, const char *user, const char *args) +throttle_single_user(cmd_parms *cmd, const char *user, uid_t uid, const char *args) { - uid_t uid; t_config *config; /* Skip users who are not defined in the system user database. */ - if ((uid = uname2id(user)) == (uid_t) -1) + if (uid == (uid_t) -1) return (const char *) 0; /* Has this user been previously defined? */ @@ -1906,10 +1905,12 @@ throttle_user(cmd_parms *cmd, void *dconfig, const char *args) { const char *user, *buf, *fmt, *err; + uid_t uid; if ((user = ap_getword_white(cmd->temp_pool, &args)) == (char *) 0) return "User ID, *, or pathname not specified."; + /* Create a throttle for all the users that appear in the * system user database. */ @@ -1919,7 +1920,7 @@ setpwent(); while ((pw = getpwent()) != (struct passwd *) 0) { - err = throttle_single_user(cmd, pw->pw_name, args); + err = throttle_single_user(cmd, pw->pw_name, pw->pw_uid, args); if (err != (const char *) 0) break; } @@ -1951,7 +1952,8 @@ /* Read the user name at the start of this line. */ while (fscanf(fp, fmt, buf) == 1) { - err = throttle_single_user(cmd, buf, args); + uid = uname2id(buf); + err = throttle_single_user(cmd, buf, uid, args); if (err != (const char *) 0) break; } @@ -1961,7 +1963,8 @@ return err; } - return throttle_single_user(cmd, user, args); + uid = uname2id(user); + return throttle_single_user(cmd, user, uid, args); } #ifdef THROTTLE_CLIENT_IP