Return-Path: Delivered-To: apmail-apache-cvs-archive@apache.org Received: (qmail 25435 invoked by uid 500); 29 Jan 2001 00:03:12 -0000 Mailing-List: contact apache-cvs-help@apache.org; run by ezmlm Precedence: bulk Reply-To: new-httpd@apache.org list-help: list-unsubscribe: list-post: Delivered-To: mailing list apache-cvs@apache.org Received: (qmail 25424 invoked by uid 500); 29 Jan 2001 00:03:11 -0000 Delivered-To: apmail-httpd-2.0-cvs@apache.org Date: 29 Jan 2001 00:03:11 -0000 Message-ID: <20010129000311.25420.qmail@apache.org> From: wrowe@apache.org To: httpd-2.0-cvs@apache.org Subject: cvs commit: httpd-2.0/modules/mappers mod_rewrite.c wrowe 01/01/28 16:03:11 Modified: . CHANGES modules/mappers mod_rewrite.c Log: *) Adopt apr user/group name features for mod_rewrite. Eliminates some 'extra' stat's for user/group since they should never occur, and now resolves the SCRIPT_USER and SCRIPT_GROUP, including on WinNT NTFS volumes. No-one commented on loosing the 'stat' calls, can anyone invent a scenario where they could be required? Also, I don't like the casts either, so if you have a better solution, don't whine, just fix it :) Revision Changes Path 1.66 +5 -0 httpd-2.0/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/httpd-2.0/CHANGES,v retrieving revision 1.65 retrieving revision 1.66 diff -u -r1.65 -r1.66 --- CHANGES 2001/01/28 23:57:24 1.65 +++ CHANGES 2001/01/29 00:03:11 1.66 @@ -1,5 +1,10 @@ Changes with Apache 2.0b1 + *) Adopt apr user/group name features for mod_rewrite. Eliminates some + 'extra' stat's for user/group since they should never occur, and now + resolves the SCRIPT_USER and SCRIPT_GROUP, including on WinNT NTFS + volumes. [William Rowe] + *) Adopt apr features to simplify mod_includes. This changes the behavior of the USER_NAME variable, unknown uid's are now reported as USER_NAME="" rather than the old user#000 result. 1.63 +4 -40 httpd-2.0/modules/mappers/mod_rewrite.c Index: mod_rewrite.c =================================================================== RCS file: /home/cvs/httpd-2.0/modules/mappers/mod_rewrite.c,v retrieving revision 1.62 retrieving revision 1.63 diff -u -r1.62 -r1.63 --- mod_rewrite.c 2001/01/20 21:42:19 1.62 +++ mod_rewrite.c 2001/01/29 00:03:11 1.63 @@ -113,12 +113,6 @@ #include #endif #endif -#ifdef HAVE_PWD_H -#include -#endif -#ifdef HAVE_GRP_H -#include -#endif #ifdef HAVE_UNISTD_H #include #endif @@ -3395,11 +3389,6 @@ char resultbuf[LONG_STRING_LEN]; apr_exploded_time_t tm; request_rec *rsub; -#ifndef WIN32 - struct passwd *pw; - struct group *gr; - apr_finfo_t finfo; -#endif result = NULL; @@ -3588,44 +3577,19 @@ LOOKAHEAD(ap_sub_req_lookup_file) } -#if !defined(WIN32) && !defined(NETWARE) - /* Win32 has a rather different view of file ownerships. - For now, just forget it */ - /* file stuff */ else if (strcasecmp(var, "SCRIPT_USER") == 0) { result = ""; - if (r->finfo.protection != 0) { - if ((pw = getpwuid(r->finfo.user)) != NULL) { - result = pw->pw_name; - } + if (r->finfo.valid & APR_FINFO_USER) { + apr_get_username(&(char*)result, r->finfo.user, r->pool); } - else { - if (apr_stat(&finfo, r->filename, - APR_FINFO_NORM, r->pool) == APR_SUCCESS) { - if ((pw = getpwuid(finfo.user)) != NULL) { - result = pw->pw_name; - } - } - } } else if (strcasecmp(var, "SCRIPT_GROUP") == 0) { result = ""; - if (r->finfo.protection != 0) { - if ((gr = getgrgid(r->finfo.group)) != NULL) { - result = gr->gr_name; - } - } - else { - if (apr_stat(&finfo, r->filename, - APR_FINFO_NORM, r->pool) == 0) { - if ((gr = getgrgid(finfo.group)) != NULL) { - result = gr->gr_name; - } - } + if (r->finfo.valid & APR_FINFO_GROUP) { + apr_get_groupname(&(char*)result, r->finfo.group, r->pool); } } -#endif /* ndef WIN32 && NETWARE*/ if (result == NULL) { return apr_pstrdup(r->pool, "");