=================================================================== RCS file: www.c,v retrieving revision 1.25 diff -u -r1.25 www.c --- www.c 1999/06/02 06:08:16 1.25 +++ www.c 2001/09/02 04:26:28 @@ -21,6 +21,7 @@ #include "www.h" #include "globals.h" #include "parse.h" +#include "pks_www.h" static const long hexchar[] = { 256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256, @@ -140,6 +141,7 @@ typedef struct _hh_state { httphandler h; xbuffer xb; + unsigned int readonly; void *c; long ptr; long method, uri, method_len, uri_len; @@ -148,10 +150,12 @@ static void reader(int fd, unsigned char *input, long len, int done, void *c) { - hh_state *s = (hh_state *) c; + hh_state *s = (hh_state *) c; long ptr, cnt; long dummy, dummy_len; + unsigned int readonly = s->readonly; + if (done < 0) { xbuffer_free(&(s->xb)); @@ -360,7 +364,7 @@ } } } else if (is_token(input+s->method, s->method_len, post, post_len, 0)) { - if (s->content_length == 0) { + if ((s->content_length == 0) || readonly) { www_reply(fd, 1000, 400, bad_request, NULL, 0); mp_delete_read(fd); xbuffer_free(&(s->xb)); @@ -484,6 +488,7 @@ hhs->h = h; hhs->c = c; + hhs->readonly = ((pks_www_conf *)c)->readonly; xbuffer_alloc(&(hhs->xb)); hhs->ptr = 0; hhs->uri = -1;