--- parser3/src/main/pa_request.C 2001/03/22 12:09:59 1.64 +++ parser3/src/main/pa_request.C 2001/03/23 10:14:34 1.68 @@ -5,7 +5,7 @@ Author: Alexander Petrosyan (http://design.ru/paf) - $Id: pa_request.C,v 1.64 2001/03/22 12:09:59 paf Exp $ + $Id: pa_request.C,v 1.68 2001/03/23 10:14:34 paf Exp $ */ #include @@ -66,7 +66,7 @@ static void add_header_attribute(const H Pool& pool=lmeaning.pool(); String attribute(pool); - (*service_funcs.add_header_attribute)(pool, + (*sapi.add_header_attribute)(pool, attribute.append(aattribute, String::UL_HEADER, true).cstr(), attributed_meaning_to_string(lmeaning).cstr()); } @@ -295,8 +295,7 @@ void Request::core(const char *root_auto } /// @todo find|solve cyclic dependences -VStateless_class *Request::use_file( - const char *file, bool fail_on_read_problem, +VStateless_class *Request::use_file(const char *file, bool fail_on_read_problem, const String *name, VStateless_class *base_class) { char *source=file_read_text(pool(), file, fail_on_read_problem); @@ -306,8 +305,7 @@ VStateless_class *Request::use_file( return use_buf(source, file, 0/*new class*/, name, base_class); } -VStateless_class *Request::use_buf( - const char *source, const char *file, +VStateless_class *Request::use_buf(const char *source, const char *file, VStateless_class *aclass, const String *name, VStateless_class *base_class) { // compile loaded class @@ -366,14 +364,16 @@ void Request::output_result(const String size_t content_length=strlen(body); // prepare header: content-length - char content_length_cstr[MAX_NUMBER]; - snprintf(content_length_cstr, MAX_NUMBER, "%d", content_length); - (*service_funcs.add_header_attribute)(pool(), "content-length", content_length_cstr); + if(content_length) { // useful for redirecting [header "location: http://..."] + char content_length_cstr[MAX_NUMBER]; + snprintf(content_length_cstr, MAX_NUMBER, "%lu", content_length); + (*sapi.add_header_attribute)(pool(), "content-length", content_length_cstr); + } // send header - (*service_funcs.send_header)(pool()); + (*sapi.send_header)(pool()); // send body if(!header_only) - (*service_funcs.send_body)(pool(), body, content_length); + (*sapi.send_body)(pool(), body, content_length); }