Annotation of parser3/src/types/pa_vrequest.C, revision 1.25
1.2 paf 1: /** @file
1.5 paf 2: Parser: @b request class.
1.2 paf 3:
1.17 paf 4: Copyright(c) 2001, 2002 ArtLebedev Group (http://www.artlebedev.com)
1.16 paf 5: Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
1.18 paf 6: */
1.2 paf 7:
1.25 ! paf 8: static const char* IDENT_VREQUEST_C="$Date: 2002/08/15 10:21:43 $";
1.1 paf 9:
10: #include "pa_vrequest.h"
11: #include "pa_request.h"
1.13 paf 12: #include "pa_charsets.h"
13: #include "pa_charset.h"
1.1 paf 14:
1.7 parser 15: // request: CLASS,method,field
1.24 paf 16: Value *VRequest::get_element(const String& aname, Value * /*aself*/, bool /*looking_up*/) {
1.12 paf 17: // $charset
1.24 paf 18: if(aname==CHARSET_NAME)
1.13 paf 19: return NEW VString(pool().get_source_charset().name());
1.12 paf 20: else {
1.24 paf 21: // $query $uri $body
1.25 ! paf 22: const char *buf;
! 23: size_t size=0;
1.24 paf 24: if(aname=="query")
1.25 ! paf 25: buf=frequest.info.query_string;
1.24 paf 26: else if(aname=="uri")
1.25 ! paf 27: buf=frequest.info.uri;
! 28: else if(aname=="body") {
! 29: buf=frequest.post_data;
! 30: size=frequest.post_size;
! 31: } else
1.24 paf 32: bark("%s field not found", 0, &aname);
1.12 paf 33:
34: String& string=*NEW String(pool());
1.25 ! paf 35: string.APPEND_TAINTED(buf?buf:"", size, "request", 0);
1.12 paf 36: return NEW VString(string);
37: }
1.1 paf 38: }
39:
1.20 paf 40: bool VRequest::put_element(const String& aname, Value *avalue, bool replace) {
1.12 paf 41: // guard charset change
1.20 paf 42: if(aname==CHARSET_NAME) {
43: pool().set_source_charset(charsets->get_charset(avalue->as_string()));
44: return true;
45: } else
46: return Value::put_element(aname, avalue, replace);
1.12 paf 47: }
E-mail: