You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Brian Behlendorf <br...@hyperreal.com> on 1996/09/30 07:56:30 UTC
cvs commit: apache/src http_protocol.c httpd.h util.c
brian 96/09/29 22:56:29
Modified: src http_protocol.c httpd.h util.c
Log:
Reviewed by: Roy Fielding, Brian Behlendorf
Submitted by: Tom Tromey
HTTP/1.0 compliance.
Revision Changes Path
1.51 +5 -7 apache/src/http_protocol.c
Index: http_protocol.c
===================================================================
RCS file: /export/home/cvs/apache/src/http_protocol.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -C3 -r1.50 -r1.51
*** http_protocol.c 1996/09/28 02:42:46 1.50
--- http_protocol.c 1996/09/30 05:56:25 1.51
***************
*** 50,56 ****
*
*/
! /* $Id: http_protocol.c,v 1.50 1996/09/28 02:42:46 brian Exp $ */
/*
* http_protocol.c --- routines which directly communicate with the
--- 50,56 ----
*
*/
! /* $Id: http_protocol.c,v 1.51 1996/09/30 05:56:25 brian Exp $ */
/*
* http_protocol.c --- routines which directly communicate with the
***************
*** 328,336 ****
char *if_nonematch = table_get (r->headers_in, "If-None-Match");
char *if_match = table_get (r->headers_in, "If-Match");
- /* Invalid, future time... just ignore it */
- if (mtime > r->request_time) return OK;
-
ts = gm_timestr_822(r->pool, (mtime > r->request_time) ? r->request_time : mtime);
table_set (r->headers_out, "Last-Modified", ts);
--- 328,333 ----
***************
*** 369,375 ****
if ((r->status < 200) || (r->status >= 300))
return OK;
! if (if_modified_since && later_than(gmtime(&mtime), if_modified_since))
return USE_LOCAL_COPY;
else if (if_unmodified && !later_than(gmtime(&mtime), if_unmodified))
return PRECONDITION_FAILED;
--- 366,373 ----
if ((r->status < 200) || (r->status >= 300))
return OK;
! if (if_modified_since && !r->header_only &&
! later_than(gmtime(&mtime), if_modified_since))
return USE_LOCAL_COPY;
else if (if_unmodified && !later_than(gmtime(&mtime), if_unmodified))
return PRECONDITION_FAILED;
***************
*** 508,515 ****
return 0;
r->the_request = pstrdup (r->pool, l);
! r->method = getword(r->pool, &ll,' ');
! uri = getword(r->pool, &ll,' ');
uri = check_fulluri(r, uri);
parse_uri (r, uri);
--- 506,513 ----
return 0;
r->the_request = pstrdup (r->pool, l);
! r->method = getword_white(r->pool, &ll);
! uri = getword_white(r->pool, &ll);
uri = check_fulluri(r, uri);
parse_uri (r, uri);
1.51 +2 -1 apache/src/httpd.h
Index: httpd.h
===================================================================
RCS file: /export/home/cvs/apache/src/httpd.h,v
retrieving revision 1.50
retrieving revision 1.51
diff -C3 -r1.50 -r1.51
*** httpd.h 1996/09/24 12:44:58 1.50
--- httpd.h 1996/09/30 05:56:26 1.51
***************
*** 50,56 ****
*
*/
! /* $Id: httpd.h,v 1.50 1996/09/24 12:44:58 mjc Exp $ */
/*
* httpd.h: header for simple (ha! not anymore) http daemon
--- 50,56 ----
*
*/
! /* $Id: httpd.h,v 1.51 1996/09/30 05:56:26 brian Exp $ */
/*
* httpd.h: header for simple (ha! not anymore) http daemon
***************
*** 556,561 ****
--- 556,562 ----
/* String handling */
char *getword(pool *p, char **line, char stop);
+ char *getword_white(pool *p, char **line);
char *getword_nulls (pool *p, char **line, char stop);
char *getword_conf (pool *p, char **line);
1.21 +29 -0 apache/src/util.c
Index: util.c
===================================================================
RCS file: /export/home/cvs/apache/src/util.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -C3 -r1.20 -r1.21
*** util.c 1996/09/26 04:16:06 1.20
--- util.c 1996/09/30 05:56:27 1.21
***************
*** 50,56 ****
*
*/
! /* $Id: util.c,v 1.20 1996/09/26 04:16:06 brian Exp $ */
/*
* str.c: string utility things
--- 50,56 ----
*
*/
! /* $Id: util.c,v 1.21 1996/09/30 05:56:27 brian Exp $ */
/*
* str.c: string utility things
***************
*** 395,400 ****
--- 395,429 ----
return res;
}
+
+ char *getword_white(pool* atrans, char **line) {
+ int pos = -1, x;
+ char *res;
+
+ for(x=0;(*line)[x];x++) {
+ if (isspace((*line)[x])) {
+ pos=x;
+ break;
+ }
+ }
+
+ if (pos == -1) {
+ res = pstrdup (atrans, *line);
+ *line += strlen (*line);
+ return res;
+ }
+
+ res = palloc(atrans, pos + 1);
+ strncpy (res, *line, pos);
+ res[pos] = '\0';
+
+ while (isspace((*line)[pos])) ++pos;
+
+ *line += pos;
+
+ return res;
+ }
+
char *getword_nulls(pool* atrans, char **line, char stop) {
int pos = ind(*line, stop);
char *res;