cvs commit: apachen/src/modules/standard mod_imap.c
coar98/01/22 15:18:08 Modified:src/modules/standard mod_imap.c Log: Clean up (marginally) some longer-than-80-character lines, and do some other indenting. Revision ChangesPath 1.39 +186 -106 apachen/src/modules/standard/mod_imap.c Index: mod_imap.c === RCS file: /export/home/cvs/apachen/src/modules/standard/mod_imap.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- mod_imap.c1998/01/21 19:06:13 1.38 +++ mod_imap.c1998/01/22 23:18:07 1.39 @@ -136,7 +136,8 @@ imap_conf_rec *add = (imap_conf_rec *) addv; new->imap_menu = add->imap_menu ? add->imap_menu : base->imap_menu; -new->imap_default = add->imap_default ? add->imap_default : base->imap_default; +new->imap_default = add->imap_default ? add->imap_default + : base->imap_default; new->imap_base = add->imap_base ? add->imap_base : base->imap_base; return new; @@ -215,9 +216,11 @@ p = (double *) pgon + 1; if ((y >= ty) != (*p >= ty)) { -if ((xflag0 = (pgon[numverts - 1][X] >= tx)) == (*(double *) pgon >= tx)) { -if (xflag0) + xflag0 = (pgon[numverts - 1][X] >= tx); +if (xflag0 == (*(double *) pgon >= tx)) { +if (xflag0) { crossings++; + } } else { crossings += (pgon[numverts - 1][X] - (y - ty) * @@ -232,15 +235,18 @@ if (y >= ty) { -while ((p < stop) && (*p >= ty)) +while ((p < stop) && (*p >= ty)) { p += 2; + } -if (p >= stop) +if (p >= stop) { break; -if ((xflag0 = (*(p - 3) >= tx)) == (*(p - 1) >= tx)) { +} + if ((xflag0 = (*(p - 3) >= tx)) == (*(p - 1) >= tx)) { -if (xflag0) +if (xflag0) { crossings++; + } } else { crossings += (*(p - 3) - (*(p - 2) - ty) * @@ -248,15 +254,18 @@ } } else { -while ((p < stop) && (*p < ty)) +while ((p < stop) && (*p < ty)) { p += 2; + } -if (p >= stop) +if (p >= stop) { break; + } if ((xflag0 = (*(p - 3) >= tx)) == (*(p - 1) >= tx)) { -if (xflag0) +if (xflag0) { crossings++; + } } else { crossings += (*(p - 3) - (*(p - 2) - ty) * @@ -270,21 +279,25 @@ } -static int is_closer(const double point[2], double coords[MAXVERTS][2], double *closest) +static int is_closer(const double point[2], double coords[MAXVERTS][2], + double *closest) { -double dist_squared = ((point[X] - coords[0][X]) * (point[X] - coords[0][X])) -+ ((point[Y] - coords[0][Y]) * (point[Y] - coords[0][Y])); +double dist_squared = ((point[X] - coords[0][X]) + * (point[X] - coords[0][X])) + + ((point[Y] - coords[0][Y]) + * (point[Y] - coords[0][Y])); -if (point[X] < 0 || point[Y] < 0) -return (0); /* don't mess around with negative coordinates */ +if (point[X] < 0 || point[Y] < 0) { +return (0); /* don't mess around with negative coordinates */ +} if (*closest < 0 || dist_squared < *closest) { *closest = dist_squared; -return (1); /* if this is the first point or is the closest yet - set 'closest' equal to this distance^2 */ +return (1); /* if this is the first point or is the closest yet +set 'closest' equal to this distance^2 */ } -return (0); /* if it's not the first or closest */ +return (0); /* if it's not the first or closest */ } @@ -293,18 +306,23 @@ char *endptr; /* we want it non-null */ double x_coord = -1;/* -1 is returned if no coordinate is given */ -if (args == NULL) +if (args == NULL) { return (-1);/* in case we aren't passed anything */ +} -while (*args && !isdigit(*args) && *args != ',') -args++; /* jump to the first digit, but not past a comma or end */ +while (*args && !isdigit(*args) && *args != ',') { +args++; /* jump to the first digit, but not past + a comm
cvs commit: apachen/src/modules/standard mod_imap.c
coar98/01/21 11:06:13 Modified:.STATUS src CHANGES src/modules/standard mod_imap.c Log: Another patch (consts in mod_imap.c) noted. Revision ChangesPath 1.110 +1 -0 apachen/STATUS Index: STATUS === RCS file: /export/home/cvs/apachen/STATUS,v retrieving revision 1.109 retrieving revision 1.110 diff -u -r1.109 -r1.110 --- STATUS1998/01/21 18:25:24 1.109 +++ STATUS1998/01/21 19:06:09 1.110 @@ -96,6 +96,7 @@ misplacement. * Ken's addition of src/ap/ap.h for prototypes of routines in libap.a * Ken's addition of #ifndef wrappers to src/main/*.h header files +* Ken's removal of problem-causing "const"s from mod_imap.c Available Patches: 1.573 +4 -0 apachen/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apachen/src/CHANGES,v retrieving revision 1.572 retrieving revision 1.573 diff -u -r1.572 -r1.573 --- CHANGES 1998/01/21 18:23:42 1.572 +++ CHANGES 1998/01/21 19:06:11 1.573 @@ -1,5 +1,9 @@ Changes with Apache 1.3b4 + *) Some const declarations in mod_imap.c that were added for debugging + purposes caused some compilers heartburn without adding any + significant value, so they've been removed. [Ken Coar] + *) The src/main/*.h header files have had #ifndef wrappers added to insulate them against duplicate calls if they get included through multiple paths (e.g., in .c files as well as other .h files). 1.38 +4 -4 apachen/src/modules/standard/mod_imap.c Index: mod_imap.c === RCS file: /export/home/cvs/apachen/src/modules/standard/mod_imap.c,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- mod_imap.c1998/01/07 22:23:33 1.37 +++ mod_imap.c1998/01/21 19:06:13 1.38 @@ -157,7 +157,7 @@ {NULL} }; -static int pointinrect(const double point[2], const double coords[MAXVERTS][2]) +static int pointinrect(const double point[2], double coords[MAXVERTS][2]) { double max[2], min[2]; if (coords[0][X] > coords[1][X]) { @@ -182,7 +182,7 @@ (point[Y] >= min[1] && point[Y] <= max[1])); } -static int pointincircle(const double point[2], const double coords[MAXVERTS][2]) +static int pointincircle(const double point[2], double coords[MAXVERTS][2]) { double radius1, radius2; @@ -195,7 +195,7 @@ return (radius2 <= radius1); } -static int pointinpoly(const double point[2], const double pgon[MAXVERTS][2]) +static int pointinpoly(const double point[2], double pgon[MAXVERTS][2]) { int i, numverts, inside_flag, xflag0; int crossings; @@ -270,7 +270,7 @@ } -static int is_closer(const double point[2], const double coords[MAXVERTS][2], double *closest) +static int is_closer(const double point[2], double coords[MAXVERTS][2], double *closest) { double dist_squared = ((point[X] - coords[0][X]) * (point[X] - coords[0][X])) + ((point[Y] - coords[0][Y]) * (point[Y] - coords[0][Y]));
cvs commit: apachen/src/modules/standard mod_imap.c
dgaudet 98/01/07 14:23:34 Modified:src/modules/standard mod_imap.c Log: This is a bit large, but that's deliberate because I took the opportunity to do the crap that we've been wanting done to mod_imap. - liberal use of const to help find stack assignments - remove all constant sized char arrays except input[]; replaced by pool string functions or by pointers into tokens inside the input[] array - in particular, the use of read_quoted() had a stack overrun potential. Eliminated. - These changes can chew memory when generating a menu. I don't care, I'd rather have them do that than have them overrun the stack. It shouldn't chew more than approx the size of the map file though. - better error handling Reviewed by: Jim Jagielski, Martin Kraemer Revision ChangesPath 1.37 +165 -153 apachen/src/modules/standard/mod_imap.c Index: mod_imap.c === RCS file: /export/home/cvs/apachen/src/modules/standard/mod_imap.c,v retrieving revision 1.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- mod_imap.c1998/01/07 16:46:50 1.36 +++ mod_imap.c1998/01/07 22:23:33 1.37 @@ -97,8 +97,6 @@ #include "util_script.h" #define IMAP_MAGIC_TYPE "application/x-httpd-imap" -#define LARGEBUF 500 -#define SMALLBUF 256 #define MAXVERTS 100 #define X 0 #define Y 1 @@ -159,7 +157,7 @@ {NULL} }; -static int pointinrect(double point[2], double coords[MAXVERTS][2]) +static int pointinrect(const double point[2], const double coords[MAXVERTS][2]) { double max[2], min[2]; if (coords[0][X] > coords[1][X]) { @@ -184,7 +182,7 @@ (point[Y] >= min[1] && point[Y] <= max[1])); } -static int pointincircle(double point[2], double coords[MAXVERTS][2]) +static int pointincircle(const double point[2], const double coords[MAXVERTS][2]) { double radius1, radius2; @@ -197,11 +195,12 @@ return (radius2 <= radius1); } -static int pointinpoly(double point[2], double pgon[MAXVERTS][2]) +static int pointinpoly(const double point[2], const double pgon[MAXVERTS][2]) { int i, numverts, inside_flag, xflag0; int crossings; -double *p, *stop; +double *p; +const double *stop; double tx, ty, y; for (i = 0; pgon[i][X] != -1 && i < MAXVERTS; i++); @@ -271,7 +270,7 @@ } -static int is_closer(double point[2], double coords[MAXVERTS][2], double *closest) +static int is_closer(const double point[2], const double coords[MAXVERTS][2], double *closest) { double dist_squared = ((point[X] - coords[0][X]) * (point[X] - coords[0][X])) + ((point[Y] - coords[0][Y]) * (point[Y] - coords[0][Y])); @@ -289,7 +288,7 @@ } -static double get_x_coord(char *args) +static double get_x_coord(const char *args) { char *endptr; /* we want it non-null */ double x_coord = -1;/* -1 is returned if no coordinate is given */ @@ -308,7 +307,7 @@ return (-1);/* else if no conversion was made, or if no args was given */ } -static double get_y_coord(char *args) +static double get_y_coord(const char *args) { char *endptr; /* we want it non-null */ char *start_of_y = NULL; @@ -336,107 +335,98 @@ } -static int read_quoted(char *string, char *quoted_part) +/* See if string has a "quoted part", and if so set *quoted_part to + * the first character of the quoted part, then hammer a \0 onto the + * trailing quote, and set *string to point at the first character + * past the second quote. + * + * Otherwise set *quoted_part to NULL, and leave *string alone. + */ +static void read_quoted(char **string, char **quoted_part) { -char *starting_pos = string; +char *strp = *string; -while (isspace(*string)) -string++; /* go along string until non-whitespace */ +/* assume there's no quoted part */ +*quoted_part = NULL; -if (*string == '"') { /* if that character is a double quote */ +while (isspace(*strp)) +strp++; /* go along string until non-whitespace */ -string++; /* step over it */ +if (*strp == '"') { /* if that character is a double quote */ +strp++; /* step over it */ + *quoted_part = strp;/* note where the quoted part begins */ -while (*string && *string != '"') { -*quoted_part++ = *string++; /* copy the quoted portion */ +while (*strp && *strp != '"') { + ++strp; /* skip the quoted portion */ } -*quoted_part = '\0';/* end the string with a SNUL */ +
cvs commit: apachen/src/modules/standard mod_imap.c
dgaudet 97/09/25 20:19:32 Modified:src CHANGES src/modules/standard mod_imap.c Log: mod_imap only handles GET. Decline the rest so that, say, a PUT action can be used. Submitted by: Jay Bloodworth <[EMAIL PROTECTED]> Reviewed by: Brian Behlendorf, Dean Gaudet, Jim Jagielski Revision ChangesPath 1.448 +2 -0 apachen/src/CHANGES Index: CHANGES === RCS file: /export/home/cvs/apachen/src/CHANGES,v retrieving revision 1.447 retrieving revision 1.448 diff -u -r1.447 -r1.448 --- CHANGES 1997/09/26 03:09:39 1.447 +++ CHANGES 1997/09/26 03:19:28 1.448 @@ -1,5 +1,7 @@ Changes with Apache 1.3b1 + *) mod_imap should only handle GET methods. [Jay Bloodworth] + *) suexec.c wouldn't build without -DLOG_EXEC. [Jason A. Dour] *) mod_autoindex improperly counted &escapes; as more than one 1.32 +6 -1 apachen/src/modules/standard/mod_imap.c Index: mod_imap.c === RCS file: /export/home/cvs/apachen/src/modules/standard/mod_imap.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- mod_imap.c1997/09/18 18:40:54 1.31 +++ mod_imap.c1997/09/26 03:19:31 1.32 @@ -653,7 +653,12 @@ char *imap_base = icr->imap_base ? icr->imap_base : IMAP_BASE_DEFAULT; -FILE *imap = pfopen(r->pool, r->filename, "r"); +FILE *imap; + +if (r->method_number != M_GET) + return DECLINED; + +imap = pfopen(r->pool, r->filename, "r"); if (!imap) return NOT_FOUND;
cvs commit: apachen/src/modules/standard mod_imap.c
randy 97/08/31 16:15:54 Modified:src/modules/standard mod_imap.c Log: Convert log_*() to aplog_error(). Revision ChangesPath 1.30 +6 -3 apachen/src/modules/standard/mod_imap.c Index: mod_imap.c === RCS file: /export/home/cvs/apachen/src/modules/standard/mod_imap.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- mod_imap.c1997/08/18 13:12:12 1.29 +++ mod_imap.c1997/08/31 23:15:52 1.30 @@ -422,11 +422,13 @@ return; } - strncpy(my_base, base, sizeof(my_base)-1); /* must be a relative URL to be combined with base */ + /* must be a relative URL to be combined with base */ + strncpy(my_base, base, sizeof(my_base)-1); my_base[sizeof(my_base)-1] = '\0'; if (strchr(my_base, '/') == NULL && (!strncmp(value, "../", 3) || !strcmp(value, "..")) ) { url[0] = '\0'; -log_reason("invalid base directive in map file", r->uri, r); +aplog_error(APLOG_MARK, APLOG_ERR, r->server, + "invalid base directive in map file: %s", r->uri); return; } string_pos = my_base; @@ -477,7 +479,8 @@ value += 2; /* jump over the '..' that we found in the value */ } else if (directory) { url[0] = '\0'; - log_reason("invalid directory name in map file", r->uri, r); + aplog_error(APLOG_MARK, APLOG_ERR, r->server, + "invalid directory name in map file: %s", r->uri); return; }